Comment fonctionne le filtre the_posts?

4

Je ne souhaite pas afficher de message avec body / post_content vide sur ma page d'accueil. J'ai donc ajouté le code ci-dessous à mon function.php. Il détecte les publications avec un corps vide, mais les affiche toujours. Je m'attendais à ce que si je reviens, le message ne sera pas affiché.

  • Comment puis-je supprimer le message affiché?
  • Comment fonctionne le filtre the_posts ?

Le code:

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');
    
posée Radek 02.01.2012 - 06:28

1 réponse

6

Tout d'abord, dans votre code, vous utilisez the_post hook mais dans votre question, vous parlez de the_posts hook, qui sont deux choses différentes.

the_posts est appelé juste après la sélection des publications dans la base de données et passe un tableau de $ publications à votre fonction. Vous devez donc l'utiliser.

comme pour the_post hook, il est déclenché (généralement) dans la boucle lui-même, ce qui est trop tard pour changer quoi que ce soit (comme redirect) et ce n'est pas un crochet de filtre, mais un crochet d'action qui signifie que si vous revenez rien, c'est juste quitter votre fonction et ne pas affecter le résultat.

    
réponse donnée Bainternet 02.01.2012 - 09:30

Lire d'autres questions sur les étiquettes