如何为登录用户只执行一次任务

时间:2013-03-28 作者:тнє Sufi

我只想在用户访问我的站点后执行一次任务。我目前正在这样做:

function my_task(){
    //do my tasks
}
add_action(\'init\', \'my_task\');
我是通过一个插件来做这件事的。这实际上会加载my_task() 每次用户加载wordpress的任何页面时都会执行此功能。但我只想为每个会话的每个用户加载一次。一旦他们关闭浏览器并再次返回,我希望它只加载一次,直到他们退出。

我该怎么做?提前谢谢。

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

有多种方法可以做到这一点,但我最近通过使用cookie解决了一个类似的问题。

add_action( \'init\', \'wpse_93797_cookie\' ); 
function wpse_93797_cookie() {
  if ( !isset ( $_COOKIE[\'wpse_93797_cookie_name\'] ) ) {
    // Do your stuff.

    // Set your cookie so we don\'t do stuff the next time around.
    // Note that 0 makes the cookie expire at the end of the user\'s browser session.
    setcookie( \'wpse_93797_cookie_name\', \'some-value-we-did-stuff-btw\', 0, \'/\' );   
  }
}

Manual for cookies on PHP.net

也可能有帮助:

How can i set , get and destroy cookies in wordpress?

结束

相关推荐

按自定义顺序对Get_Users()中的用户进行排序

<?php $blogusers = get_users(\'include=5,6,2,7,12,8\'); foreach ($blogusers as $user) { ... } ?> 现在,这些用户将按名字排序。如何按数字的顺序排序include=...? 示例:用户5第一、用户6第二、用户2第三等。