WordPress カスタムフィールド

WordPressを使い続けているといろいろなゴミがたまっていく場合があります。その中で、先日からカスタムフィールドの中におそらく関係がないだろうと思われる項目がいくつかあるのに気が付きました。この関係ないと思われる項目が追加される理由の一つにプラグインがあります。

WordPressを運営していると良さそうなプラグインがあると「試しに」と思ってインストールしてしまう時がWordPressユーザならあると思います。しかし、実際に利用してみるとあまり良いプラグインではなかったので削除するのですが、削除してもファイルだけが削除されデータベースあるそのプラグイン用の項目はそのまま残ってしまうことが良くあります。その為、その様なゴミが発生しないように開発環境などでテストしてから本番環境にインストールするべきなのですが、なかなかそうもいかない時もあります。

今回、気が付いたカスタムフィールドの項目もそのままにしておいても特に影響はないのですが、何となくず~と気になっていたので今回この不要なカスタムフィールドの項目を削除することにしました。

下記にその項目を削除してもいいか検証する方法と削除方法を明記しておきます。

カスタムフィールドの項目をチェック

まず、気になる項目をあげて、その項目がなんのプラグインで使用しているかチェックします。今回チェックする項目は

  • aktt_notify_twitter
  • aktt_tweeted
  • jd_tweet_this
  • wp_jd_clig

の4項目。名前からして大体は予想がつきますが、ここはその辺を無視してチェックしてみます。ちなみにこのチェック方法はあくまで一つの方法であって、他の方法もあると思います。

まずは、WordPress内のプラグインが入っている/wp-content/plugins/のディレクトリをローカルパソコン内に全てダウンロードします。そして、秀丸エディタなどでそのディレクトリ内の全ファイルを上記の文字列でgrep検索を行います。その結果、上記項目の「jd_tweet_this」と「wp_jd_clig」は「WP to Twitter」プラグインにヒットしました。ヒットすると言うことはそのプラグインで使用しているので削除するわけにはいきません。その他の2つの項目「aktt_notify_twitter」と「aktt_tweeted」は何もヒットしません。

次に「aktt_notify_twitter」と「aktt_tweeted」の項目をお約束のGoogleで検索しました。すると「aktt_tweeted」が以前使用していたプラグインTwitter Toolsで使用していたような情報がありました。

次にそのプラグインをダウンロードして「aktt_tweeted」を検索。するとものの見事にプログラム上で使用しています。この項目を見てみると頭のプレフィックス(「aktt_」の部分)が同じなので多分、Twitter Toolsで使用しているだろうと予測して検索してみると、これまたヒットしました。

通常、プラグインなどで使用している名前というのは他のプラグインと干渉、判別できるようにプレフィックスを使用して同じ名前にする傾向にあります。

カスタムフィールドを削除

さて、不要である項目が見つかったら次は削除なのですが、これら項目はデータベース内の「wp_postmeta」テーブルに含まれています。このテーブルの「meta_key」フィールドにこれら項目があるとカスタムフィールドに表示されます(詳細な検証は行っていませんが)。

そこで、「wp_postmeta」テーブルの「meta_key」フィールドにある「aktt_notify_twitter」と「aktt_tweeted」の項目を削除すればいいのですが、その前にお約束のデータベースのバックアップを取っておきましょう。もし、項目を削除してWordPressが動かなくなってしまっては困ります。

バックアップを取ったらいよいよ「aktt_notify_twitter」と「aktt_tweeted」の削除です。phpMyAdminなどで下記SQLを実行することによって、これら項目を削除することができます。

DELETE FROM `wp_postmeta`
WHERE `meta_key`="aktt_notify_twitter"
OR `meta_key`="aktt_tweeted";

これで、カスタムフィールドには「aktt_notify_twitter」と「aktt_tweeted」が表示されなくなり、スッキリしました(^^)