Wie erhalte ich die Post-ID der aktuellen Seite / des Posts in einem Widget?

7

Ich bemühe mich sehr, die Post-ID des aktuellen Posts / der aktuellen Seite in einer Widget-Klasse zu erhalten, aber es funktioniert nicht. Ich weiß, dass es get_the_ID () und einige andere Optionen gibt, aber keine einzige funktioniert in einem Widget. Hier ist mein Code:

public function widget( $args, $instance ) {


   global $wp_query;

   $thePostID = $wp_query->post->ID;
   echo 'Post ID is:' . $thePostID;

}
Faizan Ali
quelle

Antworten:

8

Sie können get_queried_object()hier einen Wrapper für $wp_querydie gesamten Post-Metadaten verwenden und diese zurückgeben.

Hier ist ein Beispielcode:

$queried_object = get_queried_object();

if ( $queried_object ) {
    $post_id = $queried_object->ID;
    echo $post_id;
}
Ram Ratan Maurya
quelle
0

Versuche dies:

<?php
global $post;
setup_postdata( $post );
echo "Post's ID: " . get_the_ID();
?>
Prasad Nevase
quelle
0
 function widget($args, $instance) {
         global $post;
         echo $post->ID;

 }
Nanhe Kumar
quelle
Können Sie den Code erklären, wie es dem OP hilft
bravokeyl
Kannst du erklären, was du willst? Dann kann ich dir helfen.
Nanhe Kumar