我使用WP Session插件存储我网站访问者的位置。当访问者第一次访问该网站时(http://www.mypage.com/),我的主页模板只是尝试猜测该位置,将其存储在会话变量中,并将用户重定向到相应主页以获取其位置(例如, http://www.mypage.com/location/sydney)。
到目前为止一切正常。但是,我开始考虑如果访问者在会话结束后使用完整位置网址(http://www.mypage.com/location/sydney或我网站内的任何其他网址)回来会发生什么情况。由于用户正在跳过主页,因此永远不会设置会话变量,并且某些功能无法正常工作。
如何确保无论页面如何,始终设置位置变量?换句话说:在每个页面上,检查是否设置了会话变量。否则,重定向到发生检测的主页。
我不想将此检查添加到每个模板。将它放在标题中是不是一个好主意?
修改
重定向到完成检测的主页可能不是一个好主意。如果该人即将阅读特定的帖子但没有会话,他将被重定向到主页,并且除非他再次搜索,否则将无法在第一时间看到他正在寻找的帖子。
如果我将位置检测功能放在标题中怎么办?如果用户没有会话,我会在那里创建会话,让他看到他首先要查找的帖子。
任何建议都将不胜感激!
的index.php
/*
* Template Name: Index
*/
$wp_session = WP_Session::get_instance();
if (!isset($wp_session['city'])) {
$wp_session['city'] = detect_city();
}
wp_redirect(home_url() . '/location/' . $wp_session['city'] . '/');
exit;