現在の投稿/ページの投稿IDをウィジェットクラス内で取得しようとしていますが機能しません。get_the_ID()やその他のオプションがあることは知っていますが、ウィジェット内では機能しません。これが私のコードです:
public function widget( $args, $instance ) {
global $wp_query;
$thePostID = $wp_query->post->ID;
echo 'Post ID is:' . $thePostID;
}
ここでは get_queried_object()
を使用できます。これは$wp_query
のラッパーで、投稿メタデータ全体を返します。
これがサンプルコードです。
$queried_object = get_queried_object();
if ( $queried_object ) {
$post_id = $queried_object->ID;
echo $post_id;
}
これを試して:
<?php
global $post;
setup_postdata( $post );
echo "Post's ID: " . get_the_ID();
?>
function widget($args, $instance) {
global $post;
echo $post->ID;
}