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():自分でフィルターを作る



