Как получить ID записи текущей страницы/записи внутри виджета?

22 окт. 2014 г., 10:33:36
Просмотры: 35.9K
Голосов: 11

Я пытаюсь получить ID записи текущей страницы/записи внутри класса виджета, но это не работает. Я знаю про функцию get_the_ID() и другие варианты, но ни один из них не работает внутри виджета. Вот мой код:

public function widget( $args, $instance ) {


   global $wp_query;

   $thePostID = $wp_query->post->ID;
   echo 'ID записи:' . $thePostID;

}
0
Все ответы на вопрос 4
0
10

Вы можете использовать функцию get_queried_object(), которая является обёрткой для $wp_query и возвращает все метаданные записи.

Пример кода:

$queried_object = get_queried_object();

if ( $queried_object ) {
    $post_id = $queried_object->ID;
    echo $post_id;
}
22 окт. 2014 г. 10:50:37
0

Попробуйте это:

<?php
global $post;
setup_postdata( $post );
echo "ID записи: " . get_the_ID();
?>
22 окт. 2014 г. 11:01:40
0

Чтобы просто получить ID, используйте get_queried_object_id()

Конечно, уже поздно, но может помочь другим, кто ищет то же самое.

19 мая 2020 г. 15:33:48
2
 function widget($args, $instance) {
         global $post;
         echo $post->ID;

 }
31 дек. 2016 г. 06:35:40
Комментарии

Можете объяснить код и как он помогает автору вопроса

bravokeyl bravokeyl
31 дек. 2016 г. 08:48:18

Можете объяснить, что вам нужно, тогда я смогу вам помочь.

Nanhe Kumar Nanhe Kumar
31 дек. 2016 г. 21:57:23