[WordPress] ウィジェットで投稿IDを取得する

個別ページにて、ウィジェットに個別ページの内容を反映させるときにget_postする方法。

背景

ウィジェットに、自作したカスタム投稿タイプのカレンダーを表示させていた。

個別ページを表示しているときは
その個別ページの投稿日に応じて、カレンダーも投稿月を表示させるために、
ウィジェット内にてget_post()したい。

解決策

$queried_object = get_queried_object();     // 表示しようとしているオブジェクトを取得

if ($queried_object instanceof WP_Post) {   // オブジェクトが投稿の場合
    $post_id = $queried_object->ID;
    echo $post_id;
}

get_queried_objectを使っているので、
個別ページのみならず、アーカイブページでも使えると思われる。(未検証)

参考

How to get post ID of the current page/post inside a widget?
I'm trying hard to get the post ID of the current post/page inside a widget class but doesn't work, I know there's get_the_ID() and some other options but not a...