我在 woprdpress 中对 $_SESSION 有一个奇怪的问题,即我想清除除自定义帖子类型 - 产品之外的所有页面上的会话变量。
我使用条件:
if(!is_singular('product')) {
unset($_SESSION);
}
问题是会话在所有页面上都被清除,包括产品单页。if 语句被简单地忽略。我尝试将其放在template_redirect钩子中或仅放在header.php文件中,没关系。
我使用动作钩子启动会话:
function register_my_session() {
if( !session_id() ) {
session_start();
}
}
add_action('template_redirect', 'register_my_session', 9);
任何帮助将不胜感激。提前致谢英国皇家空军
是的,我的意思是我想在用户全部打开时过滤 unset_session() 除产品单页外的页面
那为什么不把它转过来,在除产品页面以外的所有页面上开火呢?
if (!is_product())
unset($_SESSION);
要过滤掉管理员,请执行以下操作:
if (!is_product() && !current_user_can('manage_options'))
unset($_SESSION);
仅在单个页面上,而不是产品,而不是管理员:
if (is_single() && !is_product() && !current_user_can('manage_options'))
unset($_SESSION);