仅在单个帖子中设置Cookie

时间:2013-06-09 作者:Rutger

我试图在用户发表一篇文章时设置cookie。我一直在跟踪他这个月读了多少篇文章。我有两个问题:

我有一个自定义模板,并将以下代码添加到我的函数中。php

function articlesVisited() {
  if (is_single()){
    $postNumber = $wp_query->post->ID;
    setcookie($postNumber,\'visited\',time()+60*60*24*31);
  }
}
add_action(\'init\', \'articlesVisited\');
首先。当我访问我网站上的一篇帖子时,永远无法访问is\\u single()中的代码。如果我在它后面放一个-else-块,它就会执行它。

其次,$wp\\u query->post->ID没有给我帖子的ID。我认为这与全局变量有关。。。

有人有过这样的经验吗?

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

init 太早(发生在主查询之前),请使用操作template_redirect 相反

身份证使用get_the_ID().

示例:

if ( is_singular() )
    setcookie( get_the_ID(), \'visited\',time() + ( DAY_IN_SECONDS * 31 ) );

结束

相关推荐

根据情况使用不同的Single.php文件

我正在自定义WordPress网站的主题,我需要使用不同的主题。基于条件的php文件。这是我的用户案例,我需要设计一个竞赛页面,在那里我需要显示人们提交的参赛作品。条目可以属于不同的类别,因此不可能基于类别对其进行跟踪。我已经创建了一个标签(竞赛),每个属于竞赛的参赛作品都会被贴上这个标签,我可以根据这个标签轻松挑选所有参赛作品。在主导航栏上,我放置了一个链接\"Contest\" 这将把用户带到竞赛页面,在此页面上,我显示所有提交的条目,并提供简短描述和链接,以转到故事页面。这是我在自定义竞赛页面上显示