【wordpress】最も基本的なプラグインの作り方

plugins

プラグインはプログラマーが作るものというイメージがありますが、調べてみるとそれほど難しくはなさそうなので、やってみました。

ワードプレスに機能を追加する方法として、
1.function.phpに関数を書く、
2.function.phpに別のphpファイルをインクルードする。
3.プラグインを使う

方法があります。

1の方法だと、function.phpを直接いじるのでエラーを起こしやすく、エラーを起こした場合、ブログの表示が真っ白になるのはもちろん、ワードプレスの管理画面も表示されなくなるので、頭も真っ白になります。
いじる場合は、FTPでサーバーに繋げた状態で、ローカルに編集前ファイルをバックアップしておき、サーバー上のファイルを編集してエラーがでたら即、FTPで元ファイルを上書きアップロードできるようにしないといけません。
また、テーマを変えたり更新したときに、function.phpを書き直さないといけません。

2のインクルードする方法は、1に比べてファイルがすっきりします。
2の方法は、下記のようなコードをfunction.phpに書くことで、外部のphpファイルをインクルードする方法です。
require_once locate_template(‘lib/init.php’);

引用:http://millkeyweb.com/wp-functions-management/

この方法で、ちょっとした関数を読み込むのは大げさで、却って見通しが悪くなるかもしれません。
エラーが起きたときには、1と同じ問題があります。
大規模なコードを読み込むなら、プラグインにした方が良さそうです。

3のプラグインを使う方法は、ちょうどよいのがあれば一番安全です。
ただ、流通しているプラグインは、多くのケースに対応できるようになっているので、どうしても不要な機能がついている分、重くなりがちです。

いろいろ方法はありどれが良いというわけではないのですが、もうひとつプラグイン自作という方法もあります。

ということで、プラグインのテストです。

1.最も簡単なプラグインの作成

localhostでは、下記の場所にプラグインのファイルを保管します。
C:xampphtdocswordpresswp-contentpluginstest
に、test.php
を作る。(名前はなんでも良いが、プラグイン名と同じにする。ファイルの文字コードはUTF-8Nで保存する。)

test.phpの中身は、下記の通り。

<?php
/*
Plugin Name: Test
*/
function my_shortcode(){
  return 'Hello!';
}
add_shortcode( 'call_my_shortcode', 'my_shortcode' );
?>

サーバーにアップする場合は、FTPでpluginsフォルダー(例:ドメイン名/public_html/wp-content/plugins)に入れても良いですが、折角ですから普通のプラグインと同じようにインストールしてみましょう。

上記のphpファイルをzip形式で圧縮します。こんな短いコード1ヶだけかよ!ってzip作成ソフトからツッコミが入りそうですが、兎に角圧縮します。

それを、ワードプレスの管理画面のプラグイン追加からアップロードして有効化します。

2.プラグインの使用

上記により、wordpressの管理画面のプラグインのところにもちゃんと表示されています。

これをショートコードで呼び出すには、投稿の本文中で、

[call_my_shortcode]

と記載すれば、関数 my_shortcode が呼び出され、上記では、Hello! と表示される。

プラグインの良いところ

上記のコードで、エラーが有る場合は、プラグインが有効化できません。
?>と書くところ、%>と書いたら、ちゃんとエラーメッセージがでました。

少なくとも単純なsyntaxエラーなら、ワードプレスがデバックしてくれるので、”いきなり真っ白”の可能性は減らせそうです。

function.phpをいじる必要が無い点も安心です。

エラーが発生した場合は、管理画面で一度プラグインを停止させてからでないと再度アップできません。

あと、プラグイン化すれば、他のいろいろと分離できて、やったことが確実に残るのも良い点です。
function.phpとか、いろんなところをいじると何をやったのかすぐ忘れちゃいますからね。

ということで、Hallo Worldレベルのプラグイン作っただけで、語ってしまいましたが、これからいろいろ作ってみようかと思います!

コメント

タイトルとURLをコピーしました