WordPress 在循环外部获取页面 ID
我想在WordPress中开始循环之前获取页面ID。我正在使用
$page = get_query_var('page_id');
显然,它不返回任何内容。
我只想检查页面的ID,并添加一个基于它的类来标记。<body>
我想在WordPress中开始循环之前获取页面ID。我正在使用
$page = get_query_var('page_id');
显然,它不返回任何内容。
我只想检查页面的ID,并添加一个基于它的类来标记。<body>
如果你使用漂亮的永久链接,将不起作用。get_query_var('page_id')
相反,请从全局 中获取查询的对象 ID:$wp_query
// Since 3.1 - recommended!
$page_object = get_queried_object();
$page_id = get_queried_object_id();
// "Dirty" pre 3.1
global $wp_query;
$page_object = $wp_query->get_queried_object();
$page_id = $wp_query->get_queried_object_id();
您还可以创建一个泛型函数来获取帖子的 ID,无论是在循环外部还是在循环内部(处理这两种情况):
<?php
/**
* @uses WP_Query
* @uses get_queried_object()
* @see get_the_ID()
* @return int
*/
function get_the_post_id() {
if (in_the_loop()) {
$post_id = get_the_ID();
} else {
global $wp_query;
$post_id = $wp_query->get_queried_object_id();
}
return $post_id;
} ?>
只需执行以下操作:
$page_id = get_the_post_id();