Die aktuelle Seiten-ID wird dynamisch ausgeschlossen

Ich versuche, einen Abschnitt “verwandte Beiträge” auf Seiten zu erstellen, die query_posts verwenden. Ich möchte das einfach verwenden, weil wir zufällige Beiträge von einer Kategorie auf einer Seite zeigen wollen, also wäre ein Plugin übertrieben.

Das Problem, das ich habe, schließt dynamisch die aktuelle Seite aus, auf der sich der Benutzer befindet, aus der Liste. Hier ist der Code, den ich verwende, und ich habe verschiedene Methoden ausprobiert, um die aktuelle Seite auszuschließen, aber keine hat funktioniert.

<?php // The Query $post_id = get_the_ID(); query_posts("showposts=4&post_type=page&post_parent=168&orderby=rand&exclude='. $post_id .'"); // The Loop while ( have_posts() ) : the_post(); echo '
  • '; the_title(); echo '
  • '; endwhile; // Reset Query wp_reset_query(); ?>

    Gehe ich falsch herum oder verwende ich den falschen Code oder beides?

    TIA!

    Auf Bearbeiten:

    Nach dem Vorschlag von Milo habe ich mich wieder umgesehen und mit seiner Antwort und einem Beitrag im WP-Forum zusammengearbeitet, um mit dem folgenden zu arbeiten (scheint “exclude” wollte nicht dafür arbeiten):

     ID; global $post; $args= array( 'post_type' => 'page', 'posts_per_page' => 4, 'post_parent' => 168, 'orderby' => 'rand', 'post__not_in' => array($this_post) ); $rel_posts = get_posts($args); foreach($rel_posts as $post) : setup_postdata($post); ?> 
  • <a href="https://wordpress.stackexchange.com/questions/46488/dynamically-excluding-current-page-id/">
  • Solutions Collecting From Web of "Die aktuelle Seiten-ID wird dynamisch ausgeschlossen"

    In Ihrem Code wäre $post_id , sagen wir, 99:

     query_posts("showposts=4&post_type=page&post_parent=168&orderby=rand&exclude='. $post_id .'"); 

    würde dazu führen, dass dies an Abfrage-Posts weitergeleitet wird:

     query_posts("showposts=4&post_type=page&post_parent=168&orderby=rand&exclude='. 99 .'"); 

    Also, dein Problem hier ist '. 99 .' '. 99 .' ist kein gültiger Wert für exclude .

    Das heißt, query_posts sollte nur verwendet werden, um die Hauptschleife in einer Vorlage zu ändern. Wenn Sie weitere Abfragen WP_Query möchten, sollten Sie eine neue WP_Query Instanz erstellen.

     $args = array( 'post_type' => 'page', 'posts_per_page' => 4, 'post_parent' => 168, 'orderby' => 'rand', 'exclude' => $post_id ); $related_posts = new WP_Query( $args ); while( $related_posts->have_posts() ): $related_posts->the_post(); // loop stuff endwhile;