Erhalten Sie Post-ID innerhalb der Kommentarschleife

Ich habe eine benutzerdefinierte Kommentarschleife auf meiner author.php Seite. Ich versuche, die Post-ID zu erhalten, damit ich den Permalink für den Beitrag, zu dem der Kommentar gehört, wiedergeben kann. Außerdem kann ich einige Post-Meta-benutzerdefinierte Felder wiederholen.

So sieht mein Loop jetzt aus –

 ID; $author_email = get_the_author_meta( 'user_email', $authorID ); $postid = get_queried_object()->post->ID; $args = array( 'user_id' => $authorID, 'post_id' => $postid, ); // The Query $comments_query = new WP_Comment_Query; $comments = $comments_query->query( $args ); // Comment Loop if ( $comments ) { foreach ( $comments as $comment ) { ?> 

Ich habe versucht, eine normale Post-Schleife in diesem zu platzieren, aber die Dinge wurden seltsam. Der Teil, für den ich das Post-Meta brauche, ist dies –

 
<a href="https://wordpress.stackexchange.com/questions/209503/get-post-id-within-comments-loop/"> View

Was mache ich falsch?

Solutions Collecting From Web of "Erhalten Sie Post-ID innerhalb der Kommentarschleife"

Beachten Sie, dass es möglicherweise einfacher ist, get_comments() , da es wie get_comments() definiert ist:

 function get_comments( $args = '' ) { $query = new WP_Comment_Query; return $query->query( $args ); } 

Wenn Sie die Kommentar-URL in Ihrer foreach Kommentarschleife benötigen, können Sie foreach verwenden:

 $comment_url = esc_url( get_comment_link( $comment ) ); 

Sie können die Post-ID auch aus dem $comment Objekt erhalten mit:

 $post_id = $comment->comment_post_ID; 

dann können Sie das verwenden, um das benutzerdefinierte Post-Meta abzurufen:

 $property_address = get_post_meta( $post_id ,'imic_property_site_address',true); 

Um den entsprechenden post permalink

 $post_url = esc_url( get_permalink( $post_id ) ); 

Es gibt keine $post Eigenschaft in get_queried_object() . get_queried_object() gibt Informationen über den aktuellen Autor zurück, wenn die Autoren-Archivseite get_queried_object() . Sie können eine var_dump() , um zu überprüfen, was get_queried_object()

 var_dump( get_queried_object() ); 

Aus diesem Grund schlägt Ihr Code fehl. Ich bin mir wirklich nicht sicher, was Sie hier erreichen müssen, aber auf alle Post-Informationen kann zugegriffen werden, indem das Haupt-Abfrageobjekt verwendet wird

  • $wp_query->posts gibt ein Array von Post-Objekten zurück. Dies sind die Posts, die von der Schleife angezeigt werden

  • $wp_query->post gibt das erste Post-Objekt der Schleife zurück, das gleiche Post-Objekt wie $post vor der Schleife

Ich denke wahrscheinlich, dass Sie danach suchen