如何在WordPress中设置Cookie而不出现“headers not sent”错误?在WP中,我无法编写一个cookie来解析一个短代码,而不会得到所说的错误。请注意,下面的代码片段是一个较大插件代码的一部分。
add_shortcode(\'show_stats\', \'settings\');
function settings(){
if(!isset($_COOKIE[\'site_stats\']))
{
// set a cookie that will expire in 5 minutes (date formats: \'years\', \'months\', \'days\', \'hours\', \'minutes\')
$counter_cookie = setcookie(\'kobopulse_site_stats\', time(), 5* MINUTE_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
}
else
{
$counter_cookie = $_COOKIE[\'site_stats\'];
}
}
根据这个问题,
Searching hook to set cookies before <head> and avoid "headers already sent", 挂钩到
init
这样做很有技巧,但是在上面的上下文和插件中,我如何连接到
init
除了我已经使用的add\\u shortcode函数之外?
SO网友:Terungwa
解决方案是设置一个连接到init的函数。
add_action(\'init\', \'stats_cookie\');
function stats_cookie()
{
if(!isset($_COOKIE[\'site_stats\']))
{
$current = current_time( \'timestamp\', 1);
setcookie(\'site_stats\', $current, time()+60+60*24*7, COOKIEPATH, COOKIE_DOMAIN );
}
}