簡単!初めてのWordPressプラグイン作成

 ワードプレスの「p」は大文字だと最近気が付きました。危うくカテゴリーを「Wordpress」として全世界に発信してしまうところでした。

 ブログをWordPressで立ち上げて自分の好みにカスタマイズしようとすると、functions.phpにアクションフックやフィルターフックを書き足していくことも多いと思います。ひとつふたつぐらいならたいした問題ではないなのかもしれませんが、functions.phpが余りにも長くなると管理をするにも一苦労です。

 そこで、ある程度まとまった機能をプラグインとして分離する方法を考えたいと思います。

プラグインの作成

プラグインの名前を決める

 現在公開されているプラグインとかぶらないユニークな名前でなければなりません。初めてのWordPressプラグインであり、WordPressに標準で「Hello Dolly」というプラグインがインストールされてるので、プログラミング業界の慣習として「Hello ○○」にしましょうか。

 WordPress管理画面から「プラグイン」→「新規追加」、「プラグインの検索」に試しに「hello」と打ち込んでエンターしましょう。

 ずらずらとでてきてしまいました。2015年5月29日の時点で325項目、11ページものヒットがあります。「Hello World」はダメですね、すでに登録されています。「Hello Dalek」、「Hello HAL」、「Hello Pinky」、いろいろですね。「Hello Gandhi」とかあります、一体何に使うのでしょうか。わかりません。

 「Hello Homura」で検索かけると「マッチするプラグインはありません。」とでましたので、これでいこうと思います。「Hello, Dolly」が同一世代のすべての人々の希望と情熱を象徴するものなのに、なんで闇堕ちしそうな名前にするの?とかいうツッコミはなしでお願いします。

フォルダとファイルの作成

 「/wp-content/plugins」以下にフォルダとphpファイルを作成します。

/wp-content/plugins/hello-homura (フォルダ)
/wp-content/plugins/hello-homura/hello-homura.php

雛形

 以下が雛形です。

今回はこのように。

実はこれだけで動作します。「インストール済みプラグイン」から確認してみてください。

20150531_1

プログラム部分を書いていないので当然なにも変化しませんが、ちゃんと有効化できます。

文字を出力

 簡単な関数を定義し、文字を出力してみましょう。先ほど作ったphpファイルを次のように改造してみてください。

これをどのように使うかというと、テンプレートファイルに「<?php homura_prpr(); ?>」と書くと文字が出力されます。試しにsingle.phpなどのどこかに「<?php homura_prpr(); ?>」を挿入し、文字が出力されるのを確認してみてください。ちゃんと動作したでしょうか?

 ちなみに、phpファイルをシフトJISで保存すると文字化けするので、Unicode(UTF-8 BOM無)で保存してください。

CSSで装飾してみる

 さらに改造してみましょう。hello-homura.phpファイルを以下のように書き換えてください。

hello-homura.phpと同じフォルダにstyle.cssというファイルを作成して以下のように保存します。

文字の背景の色が変わったはずです。この方法だとメインのCSSを書き換えなくてもHTMLを装飾できます。

functions.phpをプラグインに切り出してみる

 functions.phpを使ったWordPressの定番といえば、投稿画面のテキストエディタへのボタンの追加ではないでしょうか。

20150531_2

一般的にはAddQuicktagプラグインをいれるか、functions.phpの編集だと思いますが、これを自作のプラグインとして実装してみましょう。

プラグイン作成の流れ

 「/wp-content/plugins」以下にフォルダとphpファイルを作成します。

/wp-content/plugins/my-add-tags (フォルダ)
/wp-content/plugins/my-add-tags/my-add-tags.php

my-add-tags.phpを以下のように編集します。

日本語が含まれている場合はUnicode(UTF-8 BOM無)で保存しないと文字化けするので注意してください。あとはプラグインを有効にして動作を確認してください。

最後に

 今回行ったWordPressのカスタマイズは自作のプラグインにしなくてもfunctions.phpを編集すればできることですが、大量のHTMLを吐き出すカスタマイズの場合、メインのCSSを編集せずにHTMLを装飾できることもあり管理の負担が減るメリットもあると思います。

「役に立った」と思ったら、記事のシェアをお願いします。

スポンサーリンク

Comment

コメント認証制です。反映されるまで時間が掛かる場合があります。
URLの記入はhttpのhを抜いて下さい(宣伝対策です)。
連続でコメントするとスパム扱いになる場合があります。
しばらく待ってからコメントしてください。

CAPTCHA


TOP