Codex を読んでもなかなかピンと来なかったり、Forum に参加しても目的の答えが見つからなかったり - 開発運用の専門家で無いブログ担当者(WordPress ブログをカスタマイズする人)にとって、カスタマイズの悩みの種は尽きません。小さなことの積み重ねですが、お客様のページをカスタマイズした際の備忘録として記事を書いています。
WordPress でいうフックとは、ユーザーの所望する動作や設定を WordPress 本体(コア・プログラム)に引っ張り込むための「きっかけ」のことです。フックは、もともと「引っ掛ける」という意味です。技術屋さんたち🐰はトリガーと呼んでいます。
様々なきっかけ、例えば、ある関数が呼び出された、または、記事が表示されたときなどに、特定の動作や設定を行うこと(自分の用意したプログラム(🐰はコードと呼びます)を実行すること)をフィルターフックといいます。今のところ、アクションフックも同じようなものと思ってください。詳しくは、WordPress API を参照してください。
フィルターフックを使うためには、通常、functions.php 内やそこから呼び出すファイル内に add_filter() という関数を記述します。その際、ftp で直接アクセスしてコア・プログラム自身を変更してしまうのは止めておきましょう。
タグクラウドのパラメータを変更したい場合は、例えばこんな感じです。set_tagcloud11 は、パラメータ変更のための任意の関数名です。既存のプログラムやモジュールとの関数名の衝突に気をつけて、少し変わった名前にするのがコツです。弊社では、関数名の末尾に管理番号をつけています。
widget_tag_cloud_args は、対象とするフィルターの名前です。wp_tag_cloud() という関数に作用します。
参考:上記と合わせて、分かりやすいように②の関数の定義も functions.php 内に一緒に書いています。(下記のコードをダブルクリックすると簡単に選択してコピーできます)
// タグクラウドのパラメータ変更 function set_tagcloud11($args) { $myargs = array( 'smallest' => 10, // 最小文字サイズ 'largest' => 20, // 最大文字サイズ 'number' => 50, // 表示数 'order' => 'DESC', // 降順に表示 'exclude' => 183, 194, 216, 310, 315 // 除外するタグ 'orderby' => 'count', // 記事を多く書いている順に表示 'echo' => false, // WordPress 4.4 以降は必要 ); return $myargs; } add_filter( 'widget_tag_cloud_args', 'set_tagcloud11' );
このようなやり方により、WordPress のデフォルト(元々の)表示と違う独自の表示にカスタマイズできます。また、WordPress 本体のプログラムを触る危険を冒す必要がありません。非常に便利な機能なので、この構文を頭に入れておいてくださいね。
参考URL:
- 対象フィルターの一覧
- wp_tag_cloud()