Table of Contents
WordPress のプラグイン “Hello Dolly” が何をやっているのか、 PHP のコードを追って調べてみました。
WordPress プラグイン Hello Dolly とは
WordPress に標準で入っているプラグインで、 管理画面に ルイ・アームストロング の歌の歌詞の一節をランダムに出してくれます。
WordPress のプラグインの説明には、 次のように記載されています。
これは単なるプラグインではありません。Louis Armstrong が歌った最も有名な二つの単語「Hello, Dolly」に要約された、世代全体の希望と熱意を象徴しているのです。このプラグインを有効化すると、すべての管理画面の右上に Hello, Dolly からの歌詞がランダムに表示されます。
“Hello Dolly” のソースコードから挙動を読み取る
“Hello Dolly” で使っている PHP ファイル はわずかひとつです。 プラグインの学習も兼ねて読んでみましょう。
ファイル冒頭に、コメントで Plugin Name
, Plugin URI
, Description
, Author
, Version
, Author URI
を記述しています。 最低でも Plugin Name
はプラグインに必要です。
このファイル内に関数は3つあります。 hello_dolly_get_lyric
, hello_dolly
, dolly_css
の3つです。
hello_dolly_get_lyric
-
“Hello Dolly” の歌詞から1行を選んで返す関数です。
mt_rand
でランダムにインデックスを取得して使っていますね。wptexturize
はテキストを WordPress のフォーマットに合わせる関数で、 WordPress 5 でも使えます。歌詞の中には “Dolly’ll never go away” という行が2行あります。 ほかにも同じ行は複数ありますね。
mt_rand
でランダムに行を出力していますが、 重複行を取り除いていませんので、 それらの重複する行は選ばれる確率が高いことになります。 hello_dolly
-
hello_dolly_get_ryric
から1行取り出して HTML にして表示する関数です。 これによって返される HTML が WordPress のページに表示されます。p
タグ のid
属性 はdolly
になっています。 hello_css
-
表示するメッセージに適用する CSS を
style
タグ のコンテンツとして表示する関数です。is_rtl
は使用している言語が右寄せなのか左寄せなのかを判定する関数で、 使用言語にあわせて表示を調整しているのがわかります。
これらの関数定義の他に、ファイル内では2つのアクションが追加されています。
add_action('admin_notices', 'hello_dolly');
-
アクションイベント
admin_notice
でhello_dolly
を実行するように指定しています。admin_notice
は 管理画面の通知エリアの表示タイミングを指しており、 「プラグインを有効化しました」などのメッセージもこのアクションで表示されています。 add_action('admin_head', 'dolly_css');
-
アクションイベント
admin_head
でdolly_css
を実行するように指定しています。admin_head
は管理画面を開くときのhead
タグ 生成時のイベントで、 ここで出力するテキストはhead
タグ 内 に出力されます。
プラグインを発展させる
シンプルなプラグインの使い方がわかったところで、コードを変更して新しくプラグインができないか考えてみましょう。
たとえば日付にあわせてまいにち、修造! 心を元気にする本気の応援メッセージ のメッセージを表示させるのも面白そうですね。
PHP で日付を取得するには次のようにします。 東京のタイムゾーンで日付を取得します。