it-swarm.com.de

Wie funktioniert das Filtern von the_posts?

Ich möchte auf meiner Homepage keine Posts mit leerem body/post_content anzeigen. Also habe ich unten Code zu meiner function.php hinzugefügt. Es erkennt Posts mit leerem Körper, zeigt sie jedoch weiterhin an. Ich habe erwartet, dass der Beitrag nicht angezeigt wird, wenn ich zurückkehre.

  • Wie kann ich entfernen posten von der Anzeige?
  • Wie funktioniert der Filter the_posts ?

Der 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');
5
Radek

Als Erstes verwenden Sie in Ihrem Code the_post hook, aber in Ihrer Frage stellen Sie Fragen zu the_posts hook, bei denen es sich um zwei verschiedene Dinge handelt.

the_posts wird aufgerufen, sobald die Posts aus der Datenbank ausgewählt wurden, und es wird ein Array von $ posts an Ihre Funktion übergeben. Sie sollten dies also verwenden.

the_post hook wird (normalerweise) in der Schleife selbst ausgelöst, was zu spät ist, um etwas zu ändern (z. B. umleiten), und es ist kein Filter-Hook, sondern ein Aktions-Hook, der bedeutet, dass es nur beendet wird, wenn Sie nichts zurückgeben Ihre Funktion und das Ergebnis nicht zu beeinflussen.

7
Bainternet