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?
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