WordPress Plugin – All in One SEO Enabler for SLPRO
iOSアプリの「するぷろ」やmacOSアプリの「MarsEdit」を使っていると、WordPressアップデート後にAii in One SEO Packプラグインで使うカスタムフィールドが反映されなくなります。WordPressアップデートのたびにカスタムフィールドを外部から使えるようにするためにはmeta.phpを変更する必要があります。これは「あれ?」となった時にググればあちこちのサイトに情報が出てくるので、少し面倒なだけで実は困りません。
困りませんけど、何かと面倒なので一度作業すれば済むようプラグイン化してみました。
実際変更するのは自分のWordPressのあるサーバーの/wp-includes/meta.phpにある「meta.php」です。
「meta.php」の919行目あたり(バージョンによって異なるかもしれないので、”is_protected_meta”でmeta.phpファイル内を検索すると良い)にこのようなコードが入っています
function is_protected_meta( $meta_key, $meta_type = null ) {
$protected = ( '_' == $meta_key[0] );
return apply_filters( 'is_protected_meta', $protected, $meta_key, $meta_type );
}
これを下記のコードに置き換えます。
function is_protected_meta( $meta_key, $meta_type = null ) {
$protected = (( '_' == $meta_key[0] ) && ( strpos($meta_key, "_aioseop") !== 0));
return apply_filters( 'is_protected_meta', $protected, $meta_key, $meta_type );
}
書き換えたら再度サーバーにアップロードします。
実際に書き換えるのは
$protected = ( '_' == $meta_key[0] );
を
$protected = (( '_' == $meta_key[0] ) && ( strpos($meta_key, "_aioseop") !== 0));
にするだけなのですが、忘れた頃にWordPressのアップデートをすることが多々ありこの設定がオリジナル状態へ上書きされてしまうために、いざするぷろ使って記事を書こうとするとカスタムフィールドが使えなくなって焦るのです。
これを回避するにはWordPressをアップデートした後にオリジナルに戻されたmeta.phpの内容を再び書き換える必要があります。つまりカスタムフィールドを外部から使えるようにする設定をもう一度やり直すのです。
で、実際やる時になって「何をどうやるんだっけ?」と記憶の捜索が始まります。逃れられないWordPressアップデートの呪縛です。私はこれを回避するために、テキストメモを作ってクラウドに保存し、「何をどうやるんだっけ?」となった瞬間にそのクラウドのメモを閲覧できるようにしてきました。
最近になって、これ関数でフックして中身書き換えれたらプラグインでいけるんじゃないかと気がついてググったところ、同じことを考えてた人が過去にいたらしいです。
mbdb (モバデビ): All in One SEO使っててMarsEditでブログ書いてる奴、これ入れとけ捗るぞ
元の「Apple情報局」というサイトは閉鎖、mbdb (モバデビ)のDropboxもすでにリンク切れでこの便利らしいプラグインは入手不可。
仕方がないので多分こういうの作ったんじゃないのという、似たようなプラグインを作りました。
is_protected_meta_for_slpro
という関数を作成し、
is_protected_meta
を実行するときに
is_protected_meta_for_slproを実行させてます。
このプラグインを有効にしておくだけでWordPressのアップデートの呪縛から解放されると思うと気がとても楽になりますね。一応私のするぷろ環境ではうまく動いています。MarsEditは持っていないので動作するかは不明ですが、理論上は動くはずです。
どこで配布するか悩みましたが、自分のサーバーがあるのでとりあえずはGameGazフォーラムで配布します。
http://forum.gamegaz.jp/viewtopic.php?f=42&t=5008