如果在URL中找到字符串,则重定向

时间:2014-05-08 作者:TomC

我试图在查看任何与插件相关的页面时,将未登录用户重定向到登录页面。

当我指定他们无法查看的页面时,我的代码运行良好,但我正在尝试从URL中提取字符串,这正是我所面临的困难。

以下是URL示例:http://domain.com/idx/city/irvine/

我正在尝试检测URL中的字符串“idx”。我查看了我使用的IDX插件中定义的重写规则:

"idx/city/([^/]+)(?:/page\\-(\\\\d+))?"       => \'index.php?idx-action=results&idx-q-Cities=$matches[1]&idx-d-ResultPage=$matches[2]\'
我尝试检查是否设置了$\\u GET[\'idx-action\'],但没有成功。

// Check for registered user or redirect to login/register page
add_action(\'template_redirect\',\'tc_check_if_logged_in\');
function tc_check_if_logged_in() {
// If user is not logged in, check for restricted pages (inside array) and ignore home/front page and admin pages
//if (!is_user_logged_in() && (is_page( array(\'1306\',\'999999\',\'999998\',)) && !is_home() && !is_front_page() && !is_admin())) // commented out as I know this part works

if ($_GET[\'idx-action\']) // Check if IDX query set 
{
    // If restricted, redirect to login page then redirect back to original page
    $url = add_query_arg(
        \'redirect_to\',
        get_permalink(),
        site_url(\'wp-login.php\')
    );
    wp_redirect($url);
    exit;
}   
} 
抱歉,如果问题不清楚。得了重感冒,不能思考!

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

中没有任何内容$_GET 将为内部重写规则设置,但它们不是这样工作的。在查询变量中查找idx-action- 任何一个get_query_var(\'idx-action\')$wp_query->query_vars[\'idx-action\'].

结束

相关推荐