在WordPress的send_headers动作中获取帖子ID

问题描述:

在WordPress中可以获取send_headers钩子中当前帖子的ID吗?全局$ post和$ wp_query不起作用,或者我做错了什么。在WordPress的send_headers动作中获取帖子ID

class myClass { 

public function __construct() { 

    add_action('send_headers', array($this, 'myFunction')); 

} 

public function myFunction() { 

    // need to get post ID here 

} 
+1

我一直在'send_headers'操作中试图通过'$ post'和'$ wp_query'获取帖子ID,但这也对我来说也是失败的。 – 2015-06-03 14:13:33

它看起来像WordPress还没有得到发起$wp_query动作send_headers被触发时的点。

正如问题询问如何获得帖子ID这个答案假设你有在网址中的slu instead。如果slu is是网址的最后部分,那么这将获得您的帖子ID。

$post = get_posts (array (
    'name' => pathinfo ($_SERVER['REQUEST_URI'])['filename'] 
))[0]; 
echo $post->ID; 

这个结果需要每次使用测试,但应该适用于大多数目的。