在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
}
看起来
WordPress还没有达到在触发操作send_headers
时启动$wp_query
的地步。
当问题询问如何获取帖子 ID 时,此答案假设您在 url 中有 slug。如果 slug 是 url 的最后一部分,那么这将为您获取帖子 ID。
$post = get_posts ( array (
'name' => pathinfo ( $_SERVER['REQUEST_URI'] )['filename']
) )[0];
echo $post->ID;
此结果需要在每次使用时进行测试,但应该适用于大多数目的。
您甚至可以尝试这样的事情:
global $wp;
$post = get_page_by_path($wp->request);
echo $post->ID;