如何根据wordpress中的页面ID设置cookie?

如何根据wordpress中的页面ID设置cookie?,wordpress,Wordpress,当前正在尝试让wordpress基于特定页面设置cookie 我可以从函数文件中设置一个常规cookie,并在init钩子上调用add\u action() /* functions.php */ function setCookies(){ global $post; setcookie('test', 'it works'); var_dump($post->ID); } add_action( init, s

当前正在尝试让wordpress基于特定页面设置cookie

我可以从函数文件中设置一个常规cookie,并在
init
钩子上调用
add\u action()

/* functions.php */    
function setCookies(){
        global $post; 
        setcookie('test', 'it works');
        var_dump($post->ID);
    }

    add_action( init, setCookies(), 10); 
变量转储正在返回
NULL


是否有一个钩子可以及时执行以设置cookie,但足够晚才能从
global$post获取信息

直到您进入循环中,
$post
变量才被设置。大多数主题在您到达那里时已经生成了输出,因此您将无法使用它来设置cookie

但是,在返回查询后,您应该能够钩住
wp
操作,并使用自己的自定义循环设置cookie。试着这样做:

function setCookies() {
    global $wp_query;
    if ($wp_query->have_posts()) {
       $post_id = $wp_query->current_post;
       setcookie('post_id', $post_id);
    }
    $wp_query->rewind_posts();
    return;
}
add_action( 'wp', 'setCookies', 10); 

请参阅codex中的和。

为什么需要倒带帖子?您将代码放在了哪里(文件)?在functions.php中,只做了一个编辑来表明这一点。