説明
the_title は、投稿タイトルを出力する前に、内容を加工できるフィルターです。
基本構文
apply_filters( 'the_title', string $title, int $post_id )
引数
$title:タイトル$post_id:投稿ID
戻り値
加工後のタイトルを返します。
使い方(サンプル)
add_filter( 'the_title', function( $title, $id ) {
return is_admin() ? $title : '【公開】' . $title;
}, 10, 2 );
注意点
- メニューや「最近の投稿」ウィジェットなど、タイトルを使う全ての場所に影響します。
- 管理画面に影響しないよう、
is_admin()で除外します。
実務での使いどころ
- 投稿のタイトルの表示を、加工するとき(先頭に「新着」を付けるなど)。
よくあるミスと対処
returnしていない。タイトルが、空になる。- メニューの項目や、ウィジェットなど、投稿のタイトル以外にも、適用される。ループの中だけにするなら、
in_the_loop()で絞る。 - タグを含む値を返し、管理画面のタイトルなどが、崩れる。
NG例
add_filter( 'the_title', function ( $title ) {
return '【新着】' . $title; // メニューの項目などにも付く
} );
OK例
add_filter( 'the_title', function ( $title, $id ) {
if ( in_the_loop() && is_main_query() ) {
return '【新着】' . $title;
}
return $title;
}, 10, 2 );
使い分け早見表
| フィルター | 加工する対象 |
|---|---|
the_title |
投稿のタイトル |
the_content |
投稿の本文 |
body_class |
<body> のクラス |

コメント