カテゴリー: プラグイン

  • WordPress最古のプラグイン「Hello Dolly」のソースコードを読み解く — 小さなコードに詰まった設計思想

    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の思想そのものが詰まっています。

  • WordPress最初のプラグイン「Hello Dolly」とは何だったのか

    2004年5月、WordPressの歴史において非常に重要なアップデートが公開されました。
    それが WordPress 1.2 “Mingus” のリリースです。

    このバージョンで初めて「プラグインシステム」が正式に導入され、現在では当たり前となっている “WordPressを拡張する文化” がスタートしました。

    そして、その象徴として同梱されたのが、WordPress史上もっとも有名で、最初のプラグインとされる 「Hello Dolly」 です。

    この記事では、Hello Dollyが何だったのか、なぜ重要だったのかを整理して紹介します。


    概要

    Hello Dolly は、WordPress共同創設者である
    マット・マレンウェッグ(Matt Mullenweg) によって開発されたプラグインです。

    • リリース日:2004年5月22日
    • 同梱バージョン:WordPress 1.2 “Mingus”
    • 目的:プラグイン機構のサンプル実装

    機能自体は非常にシンプルで、管理画面の右上に
    ルイ・アームストロングの楽曲 『Hello, Dolly!』 の歌詞をランダム表示するだけ。

    実用性というよりも、「WordPressはこうやって拡張できる」という技術デモとして作られました。


    主な変更点・特徴

    WordPress 1.2とHello Dollyが持っていた意味を整理すると、次のポイントになります。

    • ✅ WordPress初の公式プラグインとして同梱
    • ✅ コアを改変せず機能追加できる仕組みを提示
    • ✅ Hooks(フック)とFilters(フィルター)の実例
    • ✅ 開発者向けサンプルコードとして設計
    • ✅ 管理画面UIへ安全に出力する方法を実演

    また、WordPress 1.2にはHello Dolly以外にも、

    • Markdownサポート
    • Textile変換ツール
    • テキスト処理系プラグイン

    など、合計5つのプラグインがプリインストールされていました。


    何が変わるのか / 影響

    ■ それまでのWordPress

    WordPress 1.2以前では、機能追加を行うには:

    • WordPress本体(コア)を直接編集
    • アップデート時に変更が消える
    • 保守が困難

    という問題がありました。


    ■ プラグインアーキテクチャの登場

    開発者 ライアン・ボレン(Ryan Boren) によって設計されたプラグインシステムにより、

    • コアを変更しない
    • API経由で機能追加
    • 拡張の分離
    • 再利用可能な機能共有

    が可能になります。

    これは単なる機能追加ではなく、

    WordPressを「CMSプラットフォーム」へ進化させた転換点

    と言っても過言ではありません。


    ■ エコシステム誕生への布石

    Hello Dollyの登場以降、

    • 個人開発者が機能を公開
    • コミュニティ主導の拡張
    • テーマ・プラグイン市場の形成

    が急速に進みます。

    なお、現在につながる 公式プラグインディレクトリ が開始されたのは翌年の2005年です。


    個人的な所感

    Hello Dollyは正直に言えば「役に立つプラグイン」ではありません。

    しかし、重要なのはそこではありません。

    このプラグインは、

    • WordPressは拡張されることを前提に設計された
    • コアは最小限に保つ思想
    • コミュニティ参加を促す入口

    を象徴しています。

    実際、多くの開発者が最初に読むWordPressコードがHello Dollyでした。

    つまりこれは、

    世界最大級CMSの“Hello World”

    のような存在だったと言えます。


    まとめ

    WordPress 1.2 “Mingus” と Hello Dolly の登場は、単なる新機能追加ではなく、

    • プラグイン文化の誕生
    • 開発者エコシステムの基礎構築
    • WordPressの長期的成長モデル確立

    という歴史的な意味を持っていました。

    現在、数万を超えるプラグインが存在するWordPressですが、その原点は「歌詞を表示するだけ」の小さなプラグインです。

    今後WordPressを開発者視点で見る際には、
    Hello Dollyが示した「拡張性」という思想にも注目してみると面白いかもしれません。

    参考にした記事