Life

wordpressのwp_headとwp_footer

wp_head()とwp_footer()というメソッド。
wordpressのコア部分のメソッドなのですが、恥ずかしながら今まで知りませんでした。

javascriptを利用したプラグインを利用するときは、これらは必須です。
今回、テンプレートにlightboxを導入する際に動ず、調べていたら、ここに行き着きました。

wp_headは、通常はwordpressのバージョン情報等をmetaタグで表示するくらいですが、wp_headが呼ばれたタイミングで、事前に登録したメソッドを呼び出せる機能ももっているのです。この機能を利用して、pluginの動作に必要なcssとかjavascriptとかの記述を行っているpluginが多いのです。
wp_footerも同様です。こちらはjavascriptの実行文を書いてあることが多いです。

今回使ってたテンプレートには、このどちらもなかったので wp-lightpopが動作しなかったというのが、動作不良の原因でした。

pluginによっては、jqueryを読み込んだり、prototype.jsを読み込んだりするので、バッティングして動作しなくなることもありますし、自前でjqueryを読み込んでたりする上に、wp_headでさらに読み込まれるとおかしくなることもあります。この辺は、試しながら調整する必要がどうしても出てきそうです。

add_action(‘wp_head’, ‘自作メソッド名’) で、処理追加
remove_action(‘wp_head’, ‘自作メソッド名’)で、処理削除

自分でプラグインを作成するときは、この辺は覚えておくと便利ですね。

WordPress3.0にして変わったこと

wordpress3.0にアップグレードしたら挙動が変わった部分を発見したのでメモ。

wordpressの場合、category-xx.php (xxはカテゴリID)というテンプレートを作成していると、該当のカテゴリIDを指定して記事一覧画面を出す場合(http://hoge.com/?cat=xx など)に、優先的にIDまで名前に入ったテンプレートを選択してくれていた。

基本的には、3.0でも一緒だが、変わっていたのは、指定されたカテゴリIDに対応する記事が1件もなかった場合。2.9までは、記事がなくてもcategory-xx.phpが呼び出されていたが、3.0からは、index.phpが呼び出されるようになっていた。archive.phpも置いてみたけど、archive.phpではなくindex.phpが呼び出された。

カテゴリID指定のテンプレートはあまり作る機会は無いが、複数の指定カテゴリの記事一覧を表示するとき等に、架空のカテゴリIDを指定して、テンプレート内にて複数カテゴリIDを指定したり、特定カテゴリIDを除外した記事一覧を取得して表示したりしていた。

今後は、index.phpを使うってことで。架空のカテゴリIDを複数使いたい場合は、index.phpの中で、$_GETの中身を見て切り替えることになりそうです。

この挙動は、タグ指定とかでも一緒だと思われます。

ブログを見直しました

ソースコードをブログに書くようになって、横幅が足りないと感じていたので、単一記事のページを2カラムに変更しました。これで、ソースコードが見やすくなったと思います。TOPページもjavascriptで、2カラムと3カラムを切り替えるようにしようかなと考えています。

同時に以下のプラグインを追加しました。

■ サイトの右側にtwitterのリンクを表示させるプラグイン
http://wpburn.com/wordpress-plugins/wp-followme-plugin

■ 単一記事ページに関連記事のリンクを表示させるプラグイン
http://rmarsh.com/plugins/similar-posts/
http://rmarsh.com/plugins/post-plugin-library/
(similar-postsを使うには、post-plugin-libraryが必要です)

■ 新しい記事を作成した際に、twitterに投稿してくれるプラグイン
http://wppluginsj.sourceforge.jp/simple-tweet/

archives

Get Adobe Flash playerPlugin by wpburn.com wordpress themes