首页 > 解决方案 > 无法在 wordpress 插件中获取 post_ID

问题描述

我正在尝试制作我的第一个 WP 插件,但停留在简单的功能上 - 无法获取其中的帖子 ID。

我努力了:

$post_id = get_the_ID();

之后我想,我的插件在循环之外工作并试试这个:

global $post;
$post_id = $post->ID;

几个小时后,我尝试创建函数,在 INIT 之后获取帖子 ID:

function postidfinder () {
    global $post;
    $post_id = $post->ID;
    return $post_id
}
add_action( 'init', 'postfinder' );

还尝试了操作:wp_loaded、loop_query。

请帮助获取插件的帖子 ID。谢谢!

标签: phpwordpress

解决方案


据我所知,要在循环之外使用 post->ID,应该首先调用 wp_query。

global $wp_query; 
$postid = $wp_query->post->ID;

(可选)get_post_id()可以为您工作,请查看 codex 了解更多信息。

从全球 $post 对象:

全局对象 $post 包含当前帖子的大量数据。从对象中获取 ID 非常容易:

global $post;
echo $post->ID;

使用 get_the_id() 和 the_id() 函数:

这两个函数的区别在于 get_the_id() 返回当前帖子的 ID,而 the_id() 打印它。

echo get_the_id();
the_id();

推荐阅读