我想获取循环外部的当前帖子/页面id(在header.php中),并将此id用于高级自定义字段插件以获取字段。
但我无法从首页、存档页(标签、作者、类别等)获得正确的id。
这是代码
if ( is_singular( \'post\' ) ) {
$post_id = $wp_query->post->ID;
echo \'post id\' . $post_id;
} elseif ( is_shop() ) {
$post_id = get_option( \'woocommerce_shop_page_id\' );
echo \'post id\' . $post_id;
} else {
$post_id = get_queried_object_id();
echo \'post id\' . $post_id
}
还有一个问题,有没有更好的方法来获取所有外部循环页面的id?我只是担心我的代码仍然缺少一些页面类型。
最合适的回答,由SO网友:Pieter Goosen 整理而成
get_queried_object_id()
将返回当前正在查看的单个帖子或页面的ID,以及静态首页。对于任何类型的存档页面(日期、自定义帖子类型和主页存档除外),将返回以下内容:
正在查看的类别存档的类别ID
正在查看的当前标记存档的标记ID
正在查看的当前作者档案的作者ID
正在查看的当前术语页面的术语ID
如果您的情况并非如此,那么您、您的主题或您正在使用的插件很可能正在使用query_posts
在某处query_posts
使用中断主查询对象并将主查询对象重置为自定义查询query_posts
. 这就是为什么你应该never ever ue公司query_posts