未设置URL参数时重定向页面

时间:2019-10-07 作者:Badger

如果缺少url参数,我将尝试重定向页面。我从中找到以下代码here:

function redirect_to_pending($query) {

    if($query->is_main_query() && $query->is_page(26)) {

        if(!array_key_exists(\'shazzid\', $query->query_vars) || empty(get_query_var(\'shazzid\'))) {

            wp_redirect(get_permalink(1752));
            exit;
        }  
    }
}
add_action(\'parse_query\', \'redirect_to_pending\');
它似乎在任何页面上都能很好地工作,除了主页,它会生成以下错误Notice: Trying to get property \'ID\' of non-object in /wp-includes/class-wp-query.php on line 3956

1 个回复
SO网友:Badger

然而,要解决这个问题,答案似乎是检查查询的对象不为NULL$query->get_queried_object() !== NULL

我不得不删除query\\u var,因为它将主页变成了404。另一个问题。

// redirect if there\'s no job id
function redirect_to_pending($query) {

    if($query->get_queried_object() !== NULL && $query->is_page(26)) {

        if(!isset($_GET[\'shazzid\'])) {

            wp_redirect(get_permalink(1752));
            exit;
        }  
    }
}
add_action(\'parse_query\', \'redirect_to_pending\');

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post