Para ser honesto, a função in_the_loop()
é o que você está procurando:
add_filter( 'the_content', 'custom_content' );
function custom_content( $content ) {
if ( in_the_loop() ) {
// My custom content that I add to the_content()
}
return $content;
}
O que in_the_loop
faz é verificar se global para $wp_query
(que é o objeto de consulta principal) da postagem atual é -1 < $current_post < $post_count
.
Isso acontece quando a consulta principal está em loop, porque antes de iniciar o loop, a postagem atual é -1 e depois que o loop termina, a postagem atual é redefinida como -1 novamente.
Portanto, se in_the_loop()
for true, significa que o objeto de consulta principal está em loop, que é o que você precisa nesse caso (e é o mesmo resultado da adição da ação em loop_start
e da remoção em loop_end
, como a resposta que @ialocin escreveu: na verdade, funciona pela mesma razão e tem o meu +1).
O benefício da abordagem @ ialocin é quando você deseja segmentar um objeto de consulta diferente do principal, porque in_the_loop()
só funciona para a consulta principal.