WordPressを触ったことがある人なら、一度は見たことがある「Hello Dolly」。
管理画面の右上に突然表示される歌詞――
正直、実用性はほぼありません。
しかしこのプラグイン、WordPressのプラグイン開発思想そのものを示すサンプルコードとして作られています。
今回は、WordPress史上最初のプラグイン Hello Dolly の実際のソースコードを読み解きながら、
- WordPressプラグインはどう動くのか
- Hooks(フック)の基本構造
- WordPressらしい設計思想
を現代視点で丁寧に解説します。
概要
Hello Dolly は WordPress 1.2(2004年)に同梱された公式プラグインです。
目的は非常に明確で、
「WordPressはこうやって拡張する」
という開発者向けの実例を示すこと。
コード量は少ないものの、実は以下すべてが含まれています。
- データ処理
- WordPress API利用
- アクションフック
- 管理画面出力
- CSS注入
- 国際化(i18n)対応
- アクセシビリティ配慮
つまり プラグイン開発の最小完成形です。
主な変更点・特徴
Hello Dolly のコードは、大きく4つの役割に分かれています。
- 歌詞データの取得
- 表示内容の生成
- WordPressイベントへの登録(Hook)
- 管理画面CSSの追加
順番に見ていきます。
何が変わるのか / 影響(コード解説)
① 歌詞を取得する関数
function hello_dolly_get_lyric() {
ここがデータ処理の中心です。
▼ 歌詞を文字列として定義
$lyrics = "Hello, Dolly
Well, hello, Dolly
…";
ポイント:
- DBを使わない
- 外部通信もしない
- 完全に自己完結
サンプルコードとして理解しやすさを優先しています。
▼ 改行ごとに分割
$lyrics = explode( "\n", $lyrics );
explode() によって、
1行 = 1要素
の配列へ変換。
つまり:
[
"Hello, Dolly",
"Well, hello, Dolly",
…
]
になります。
▼ ランダムに1行選択
$lyrics[ mt_rand( 0, count( $lyrics ) - 1 ) ]
ここでは:
count()→ 行数取得mt_rand()→ 高速乱数生成
を組み合わせています。
毎回表示が変わる理由はここです。
▼ WordPress独自関数
return wptexturize(…)
これが重要。
wptexturize() は:
- クォート記号補正
- タイポグラフィ整形
- WordPress標準表示ルール適用
を行います。
👉 「WordPressらしい表示」に変換する処理
単なるPHPではなく、WordPress環境に統合されています。
② 実際に画面へ表示する
function hello_dolly() {
ここは「出力担当」。
▼ 歌詞取得
$chosen = hello_dolly_get_lyric();
責務分離がされています。
- 取得ロジック
- 表示ロジック
を分けているのは非常に良い設計。
▼ 管理画面の言語判定
if ( 'en_' !== substr( get_user_locale(), 0, 3 ) )
ユーザー言語が英語以外なら:
lang="en"
を追加。
これは:
✅ スクリーンリーダー対応
✅ 多言語環境対応
というアクセシビリティ設計です。
2004年コードとは思えない配慮。
▼ HTML出力
printf(…)
出力されるHTMLは実質:
<p id="dolly">
<span class="screen-reader-text">...</span>
<span dir="ltr">歌詞</span>
</p>
ここで重要なのは:
__()→ 翻訳対応- screen-reader-text → 視覚障害者対応
- dir=”ltr” → 表示方向固定
WordPress標準UIルールの教科書状態です。
③ Hook(WordPressの核心)
add_action( 'admin_notices', 'hello_dolly' );
これがWordPress最大のポイント。
意味は:
管理画面通知が表示されるタイミングで hello_dolly() を実行
つまり、
- コアを変更しない
- 指定イベントへ割り込む
これが プラグインアーキテクチャの本質です。
現代WordPressでも完全に同じ仕組みが使われています。
④ CSSを管理画面へ追加
function dolly_css()
ここでは <style> を直接出力。
add_action( 'admin_head', 'dolly_css' );
により、
管理画面 <head> 読み込み時に実行されます。
CSSのポイント:
- 右上へ配置
- RTL言語対応
- モバイルレスポンシブ対応
- ブロックエディタでは非表示
後年のGutenbergにも対応済みなのが興味深い点です。
個人的な所感
Hello Dolly を改めて読むと驚くのは、
「初心者向けサンプルなのに設計が正しい」こと。
たった数十行で:
- Hook思想
- WordPress API利用
- 国際化
- アクセシビリティ
- UI統合
が全部学べます。
現代のプラグイン開発でも、
最初に読むべきコードはHello Dolly
と言われ続ける理由がよく分かります。
実用機能ゼロなのに、教育価値は極めて高い。
まとめ
Hello Dolly は単なるジョークプラグインではなく、
- WordPress拡張モデルの原点
- Hookベース設計の実例
- プラグイン開発の最小テンプレート
でした。
現在のWordPressには数万のプラグインがありますが、そのすべての始まりはこのコードです。
もしこれからWordPress開発を始めるなら、
フレームワーク解説より先に Hello Dollyを読むことをおすすめします。
小さなコードですが、WordPressの思想そのものが詰まっています。
コメントを残す