WordPress Global Redirect

时间:2018-08-15 作者:Brett

我需要进一步展开讨论Redirect entire website to a single page 包括两页而不是一页。

在这个网站上,我需要两个网页是活的和所有其他重定向到主页。

http://prairiebrand.com/

这就是我正在尝试的代码,我得到了一个永久重定向。

add_action( \'template_redirect\', \'wpse_76802_goodbye_redirect\' );

    function wpse_76802_goodbye_redirect() {
        if (( ! is_page( 16372 ) ) || ( ! is_page( 16384 ) )) {
            wp_redirect( esc_url_raw( home_url( \'index.php?page_id=16372\' ), 301 ) );
            exit;
        }
    }

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

is_page() 也支持数组,所以您可以这样做。

add_action( \'template_redirect\', \'wpse_76802_goodbye_redirect\' );

function wpse_76802_goodbye_redirect() {
    if ( !is_page( array( 16372, 16384 ))) {
        wp_redirect( esc_url_raw( home_url( \'index.php?page_id=16372\' ), 301 ) );
        exit;
    }
}

SO网友:nmr

您的条件无效。改变||&& (否则if 始终为真):

if ( !is_page( 16372 ) && !is_page( 16384 ) )
这意味着:如果当前页面ID不是16372AND 不是16384,则重定向。

完整代码:

add_action( \'template_redirect\', \'wpse_76802_goodbye_redirect\' );

function wpse_76802_goodbye_redirect() {
    if ( !is_page( 16372 ) && !is_page( 16384 ) ) {
        wp_redirect( esc_url_raw( home_url( \'index.php?page_id=16372\' ), 301) );
        exit;
    }
}

结束

相关推荐

redirect if shortcode exists

WordPress初学者。我试图检查用户请求的页面中是否存在短代码,如果存在,则在用户未登录时重定向。function redirect_to_home() { if (has_shortcode(get_the_content(), \'shortcode\')) { if(!is_admin() && !is_user_logged_in()) { //redirect exit(); }