WP-CLI経由のときにプラグインが警告を吐くときの対処方法


WordPressのプラグインで$_SERVER['HTTP_HOST']のような環境変数を使うと、wp helpみたいにコマンドを打つたびに盛大に警告が出ちゃいます。

$ wp help
Notice: Undefined index: HTTP_HOST in /path/to/wp-content/plugins/dynamic-hostname/dynamic-hostname.php on line 74
PHP Notice:  Undefined index: HTTP_HOST in /path/to/wp-content/plugins/dynamic-hostname/dynamic-hostname.php on line 75
Notice: Undefined index: HTTP_HOST in /path/to/wp-content/plugins/dynamic-hostname/dynamic-hostname.php on line 75
PHP Notice:  Undefined index: HTTP_HOST in /path/to/wp-content/plugins/dynamic-hostname/dynamic-hostname.php on line 74
Notice: Undefined index: HTTP_HOST in /path/to/wp-content/plugins/dynamic-hostname/dynamic-hostname.php on line 74
PHP Notice:  Undefined index: HTTP_HOST in /path/to/wp-content/plugins/dynamic-hostname/dynamic-hostname.php on line 75
Notice: Undefined index: HTTP_HOST in /path/to/wp-content/plugins/dynamic-hostname/dynamic-hostname.php on line 75
...

今回は、以下のような条件分岐を追加することで、WP-CLI経由でのアクセスの際には何もしないように修正しました。

// nothing to do when wp-cli enabled
if (defined('WP_CLI') && WP_CLI) {
    return;
}

参考: https://github.com/wp-cli/wp-cli/wiki/Commands-Cookbook

そんなわけで以下のプラグインをアップデートしました。

http://wordpress.org/plugins/dynamic-hostname/

 

oEmbed Gist + Jetpack 2.9について


先日リリースされた JetPack 2.9 からGistのURLをコピペするだけで、記事内にGistのコンテンツを放り込めるようになりました。

https://wordpress.org/plugins/jetpack/

一方でこのサイトでも oEmbed Gistというプラグインをリリースしているのですが、一見同じ挙動のようでも以下のようにやや動作が違いますので、お好みに合わせてお使いください。

http://wordpress.org/plugins/oembed-gist/

  1. Gistは以前に一度URLのフォーマットに変更が加えられており、JetPackは古いフォーマットのURLに対して対応していません。
    以前からoEmbed Gistをお使いいただいている場合(だいたい1年以上前ぐらい)は、引き続きoEmbed Gistをご利用ください。
  2. oEmbed Gistは、Private Gistも貼り付け可能ですが、JetPacksはPrivate Gistは貼り付けできません。

Private Gistについては以前にJetPackの中の人とやりとりしたんですが、Private Gistなので貼り付けられたらあかんやろって意見があって、それはそれで正しい解釈とも思ったんですが、Gist側のAPIが現実に貼り付けを可能にしているため、ぼくは単純にGistのAPIに合わせたほうがいいと判断しました。

なお、oEmbed Gist 1.5.0を先ほどリリースしましたが、これはJetPackとのコンフリクトを避けるためのアップデートですので、JetPack 2.9以降をご利用の皆さんで、oEmbed Gistを引き続きご利用いただく場合はかならずアップデートしてください。

ちなみに、これからGistを使おうかなーって人でJetPackを使ってる人は、すなおにJetPackのほうでやることをおすすめします。

(ところで、いい加減、JetPackはごった煮過ぎて、どこで何をやらかしてるのかわかんなくなってきましたね。)

WordPressでget_*()を使うときは念のためソースを確認して適切に処理すべし!


先日facebookの中でのやりとりで、ここわかりにくいんだよなーって思った事例がありました。

WordPressのテーマ内でパーマリンクを出力するには the_permalink() 関数を使用します。

<?php the_permalink(); ?>

でも、これ、いきなり出力してしまうので、場合によっては get_permalink() を使いこともありますよね。

他にも同様のケースで、the_*() のようなテンプレートタグを get_*() で置き換えることが多いと思います。

でもこれ、ケースバイケースですがあんまよくないです。。。

続きを読む