説明
the_content は、投稿本文を出力する前に、内容を加工できるフィルターです。
基本構文
apply_filters( 'the_content', string $content )
引数
$content:本文のHTML
戻り値
加工後の本文を返します。
使い方(サンプル)
add_filter( 'the_content', function( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
$content .= '<p>お読みいただきありがとうございます。</p>';
}
return $content;
} );
注意点
is_single()・in_the_loop()・is_main_query()で絞らないと、サイドバーや抜粋などにも影響します。- 必ず値を返します。
実務での使いどころ
- 投稿の本文の出力を、加工するとき(記事の末尾に、関連記事やボタンを追加する)。
- 本文の中の、特定の文字を置き換えるとき。
よくあるミスと対処
returnしていない。本文が、空になる。- 自動で作る抜粋の生成の中でも、このフィルターが呼ばれるため、追加した内容が、抜粋に混ざる場合がある。
- アーカイブや、ウィジェット、フィードの本文にも、適用される。個別ページのメインの本文だけなら、
is_singular()・in_the_loop()・is_main_query()で、絞る。 - このフックの中で、
the_content()や、apply_filters( 'the_content', ... )を呼んでいる。無限ループになる。 - 自動の段落(
wpautop)は優先度10、ショートコードの展開は優先度11。それより後に処理したいときは、優先度を大きくする。
NG例
add_filter( 'the_content', function ( $content ) {
return $content . '<p>続きはこちら</p>'; // すべての本文に、追加される
} );
OK例
add_filter( 'the_content', function ( $content ) {
if ( is_singular( 'post' ) && in_the_loop() && is_main_query() ) {
$content .= '<p>続きはこちら</p>';
}
return $content;
}, 20 );
使い分け早見表
| フィルター | 加工する対象 |
|---|---|
the_content |
投稿の本文 |
the_title |
投稿のタイトル |
excerpt_length |
自動で作る、抜粋の長さ |

コメント