MTのカスタムフィールドの値をphpmyadminで一括置換する

この記事を書いている時点で、Movable Type(以下MT)のカスタムフィールドはダッシュボード内で検索、置換することができません。

six apartが提供するWebCMS「Movable Type.net」だとできるみたいなんですけどね。

movabletype.net

自分でサーバーにインストールするMTは、この機能がまだ実装されていないんですよねぇ。

ということで、MTのカスタムフィールドを一括置換する場合は、phpmyadmin経由で、MySQLを触ることになります。

phpmyadminにログイン

MTを設置した際に設定したMySQLのアカウント情報を元にphpmyadminにログインして下さい。

左サイドバーにMTを設置した際のデータベース名が表示されているので展開。その中からテーブル「mt_entry_meta」を選択して下さい。

 

選択後、MTのカスタムフィールドの値が表示されます。ここで「SQL」タブをクリックして下さい。

テーブル「mt_entry_meta」の各フィールドの役割はこちらの記事が分かりやすいです。

sterfield.co.jp

テキストエリアの値を置換してみる

テキストエリアのカスタムフィールドは、テーブル「mt_entry_meta」のフィールド「entry_meta_vclob」に値が格納されています。

先ほど移動したSQLの画面です。遷移すると1行だけSQL文が書いてあります。

これを消して、ここに以下のように書きます。

update mt_entry_meta set entry_meta_vclob=replace(entry_meta_vclob,'rel="nofollow"','rel="nofollow noopener"')
  1. updateでテーブル名(mt_entry_meta)を指定
  2. setでフィールド(entry_meta_vclob)を指定
  3. replaceで、フィールド名、置換前文字列、置換後文字列を指定

という感じで一括置換を行います。

私の場合は、テキストエリアに書いていたリンク中のrel="nofollow"をrel="nofollow noopener"に置換するように命令しました。

SQL文に問題がなければ、以下のように表示されます。

MTのカスタムフィールド内の値が、実際に置換されていることと思います。