タイトルは考えるのが面倒だったので、NetBeans + PHP + WordPressの設定についてちょー簡単に書いた記事の「NetBeans + PHP + WordPress なら10分でWidgetが作れる。」を真似しました。まぁ、Widget自体、pluginとして作成する方法を紹介したわけですから、やることは同じだということで、10分で作れても不思議は無いですね…
ということで、作ってみたプラグインがこれ。id=1の記事を取り出して表示するだけ。get_footerのフィルタープラグインとして登録しているので、テンプレートでget_footerを呼び出すと実行されます。これをwp_content/plugins/simple-plugin/simple-plugin.php という名前で保存してから、プラグインを有効にして、WordPressで用意したブログサイトのトップページなどへアクセスすると、id=1(初期状態だとHello Worldの記事)のpostsテーブルから取り出した情報のvar_dump結果が表示されます。
<?php /* Plugin Name: simple-plugin Plugin URI: http://www.sssg.org/blogs/hiro345/archives/7877.html Description: simple plugin Version: 1.0 Author: hiro345 Author URI: http://www.sssg.org/blogs/hiro345/ */ function wp_simple_plugin() { global $wpdb; $result = $wpdb->query($wpdb->prepare("SELECT * FROM $wpdb->posts WHERE id=%d", 1)); if ($result) { var_dump($wpdb->last_result); } } add_action('get_footer', 'wp_simple_plugin'); ?>
例のごとく、説明はあまりしませんが、Plugin API/Action Reference « WordPress Codexとか、WordPress hooks database – action and filter hooks for wp plugin developers — Adam Brown, BYU Political Scienceとか、このあたりをみると、アクションフックやフィルターフックに何があるかわかるはずなので、一度はざっと見ておくと良さそうです。
ちなみに、do_action()にフックすることで実行されるプラグインをアクションプラグインといいます。投稿記事またはページを更新したり公開したりといったなんらかのアクションが発生するところでフックしたいときには、これを使います。
テンプレートで使われる関数やタグが扱うデータを変換したいときに実行されるプラグインをフィルタープラグインといいます。アクションプラグインと違いフィルタープラグインは、変更する入力を引数として受け取るという特長があります。wp_title()などをフィルターする wp_simple_title_plugin($content)みたいなものを用意して、$contentに変換対象のテキストがくるので、これを書き換えれば良いということになります。wp_simple_title_pluginはadd_filterで登録します。
続き:NetBeans + PHP + WordPress なら10分でfilter pluginが作れる。 | hiro345