在WordPress中的send_headers操作上获取post id

时间:2014-11-25 12:09:06

标签: php wordpress

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

class myClass {

public function __construct() {

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

}

public function myFunction() {

    // need to get post ID here

}

2 个答案:

答案 0 :(得分:1)

当触发操作$wp_query时,WordPress似乎尚未启动send_headers

当问题询问如何获得帖子ID时,这个答案假定你在网址中有slug。如果slug是url的最后一部分,那么这将获得你的帖子ID。

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

此结果需要按使用情况进行测试,但应该适用于大多数用途。

答案 1 :(得分:0)

你甚至可以尝试这样的事情:

global $wp;
$post =  get_page_by_path($wp->request);
echo $post->ID;