Como o filtro the_posts funciona?

4

Eu não quero exibir post com corpo vazio / post_content na minha home page. Então eu adicionei abaixo o código para o meu function.php. Ele detecta post com o corpo vazio, mas ainda os exibe. Eu esperava que se eu retornasse '' o post não será exibido.

  • Como posso remover postar a exibição?
  • Como o filtro the_posts funciona ?

O código:

function remove_post_with_empty_body ( $posts ) {

    if (($posts->post_content) == '') { 


        echo 'empty'; //also tried return false; and return null;

        return '';
    }
    else {

        echo 'not empty';
        return $posts;
    }

}
add_action('the_post', 'remove_post_with_empty_body');
    
por Radek 02.01.2012 / 06:28

1 resposta

6

Em primeiro lugar, no seu código você está usando the_post hook, mas em sua pergunta você está perguntando sobre the_posts hook, que são duas coisas diferentes.

the_posts é chamado logo após os posts terem sido selecionados do banco de dados e passa uma matriz de $ posts para sua função, então você deve usar isso.

como para the_post hook, ele é acionado (normalmente) dentro do próprio loop que é tarde para alterar qualquer coisa (como redirecionar) e não é um gancho de filtro, mas um gancho de ação que significa que se você retornar nada, é apenas sair da sua função e não afetar o resultado.

    
por Bainternet 02.01.2012 / 09:30

Tags