add_filter():値を書き換えてから使わせる(WordPress)

WordPress が値を使う前に、その値を自分の関数で書き換えます。本文・抜粋の長さ・タイトルなど、表示の前の値を変えたいときに使います。

書き方

add_filter( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 ): true
  • $hook_name:フィルターの名前(the_content・excerpt_length・the_title など)
  • $callback:値を受け取って、変えた値を返す関数
  • $priority(省略できる):順番。小さいほど先に動きます。
  • $accepted_args(省略できる):関数が受け取る引数の数。

使い方の例

// 抜粋の長さを 80 文字にする
add_filter( 'excerpt_length', function ( $length ) {
	return 80;
} );

// 投稿の本文の最後に一文を足す(投稿のページだけ)
add_filter( 'the_content', 'my_add_note' );
function my_add_note( $content ) {
	if ( is_single() && in_the_loop() && is_main_query() ) {
		$content .= '<p>最後まで読んでいただき、ありがとうございます。</p>';
	}
	return $content;
}

よくある間違い

  • return を忘れる:関数が何も返さないと、値が空になります。the_content なら本文が消えます。条件に合わないときも、受け取った値をそのまま返します。
  • echo してしまう:フィルターは値を返すものです。echo すると、出したい場所と違うところに出ます。
  • 引数が届かない:2 つ目からの引数を使うときは、$accepted_args にその数を書きます。
  • 処理を足すだけで値を返さないなら add_action() です。

関連する関数

  • add_action():決まったタイミングで処理を動かす
  • remove_filter():足したフィルターを外す
  • apply_filters():自分でフィルターを作る

逆引きリファレンスの一覧へ

サイドバー

よく使うカスタマイズ

最近の記事

  1. Fstyle Final Output Replacer のルールの一覧(generator タグを消す 2 つのルール)

Profile

PAGE TOP