IS_PAGE和WP_REDIRECT的问题

时间:2013-08-28 作者:TomC

我使用cookies来确定我应该在我的网站上使用哪个菜单。这很好,但如果有人直接查看URL,而不是通过带有查询字符串(被重定向)的URL,我想强制使用正确的方法。

换句话说,URL www.yourdomain。com/?region=阿联酋被重定向到www.yourdomain。com/uae/和我希望当新访问者(没有cookie)单击指向www.yourdomain的直接链接时,能够显示相同的结果。com/阿联酋/

我不能对init使用钩子,因为我使用的是is\\u page()函数。

add_action( \'template_redirect\', \'pstv_set_uae_cookie\');
function pstv_set_uae_cookie() {
    // Set cookie if on UAE Home Page & redirect back
    if (is_page(\'uae\') && $_COOKIE_[\'region\'] !== "UAE") {
        $expire = time()+60*60*24*30;
        setcookie("region", "UAE", $expire, \'/\', \'.domain.com\');
        wp_redirect( \'http://domain.com/uae/\' ); 
        }
}
firefox中出现以下错误:

页面重定向不正确Firefox检测到服务器正在以永远无法完成的方式重定向对此地址的请求。此问题有时可能是由于禁用或拒绝接受Cookie造成的。

我知道在输出任何内容之前需要进行重定向,但在wp函数初始化之前,我无法访问is\\U页面。

有人能推荐一种变通方法吗?TIA公司

1 个回复
SO网友:usama sulaiman

您需要将重定向函数与setcookie函数分开

用于setcookie函数add_action(\'wp\', \'your_cookies_function_name\',10,1)请注意,建议使用wp 而不是init 因为is_page 不适用于init

对于重定向功能:

function your_redirect_function_name()
    {
        if(is_page(\'uae\') && $_COOKIE_[\'region\'] !== "UAE"){
            wp_redirect(\'http://domain.com/uae/\');
            exit();
        }
    }
add_action( \'template_redirect\', \'your_redirect_function_name\',9 );
有关详细信息,请导航到此页面How to setcookie if is_page('page') ? should I use add_action('init') or there is another action?

我也有同样的问题,我自己解决了

结束

相关推荐

编辑功能-admin_init

我在角色和能力方面有点困难。编辑们被判“作弊”呃-尝试更新自定义主题设置时的消息。有人能解释一下原因吗?或者甚至能找到解决办法吗?<?php add_action(\'admin_menu\', \'add_global_custom_options\'); function add_global_custom_options() { add_menu_page(\'Indstillinger\', \'Indstillinger\', \'moderate_comments