the_content
フィルタが適用される前に、どのフックまたはフィルタが投稿コンテンツを編集するために使用されます。
たとえば、 Hello Worldを を各投稿の最初のテキストとして追加したい場合。
the_content
は高い優先順位(低い番号)で使用できます。
add_filter( 'the_content', function( $content ) {
return 'Hello World '.$content;
}, 0);
負の優先順位を使用することもできます。
add_filter( 'the_content', function( $content ) {
return 'Hello World '.$content;
}, -10);
投稿の種類に関係なく、またはターゲット投稿がメインクエリの一部であるかどうかにかかわらず、これは'the_content'
が使用されるたびに適用されることに注意してください。
さらに細かく制御するには、loop_start
/loop_end
アクションを使用してフィルタを追加および削除します。
// the function that edits post content
function my_edit_content( $content ) {
global $post;
// only edit specific post types
$types = array( 'post', 'page' );
if ( $post && in_array( $post->post_type, $types, true ) ) {
$content = 'Hello World '. $content;
}
return $content;
}
// add the filter when main loop starts
add_action( 'loop_start', function( WP_Query $query ) {
if ( $query->is_main_query() ) {
add_filter( 'the_content', 'my_edit_content', -10 );
}
} );
// remove the filter when main loop ends
add_action( 'loop_end', function( WP_Query $query ) {
if ( has_filter( 'the_content', 'my_edit_content' ) ) {
remove_filter( 'the_content', 'my_edit_content' );
}
} );
the_content
の前に他のグローバルフィルタを適用することはありません - あなたの$priority
呼び出しで add_filter
引数を使用して、他のどの関数よりも先に関数が実行されるようにすることができます。
function wpse_225625_to_the_top( $content ) {
return "Hello World\n\n\$content";
}
add_filter( 'the_content', 'wpse_225625_to_the_top', -1 /* Super important yo */ );