将第一个类别存档页面重定向到正常页面

时间:2018-03-07 作者:JoaMika

我正在寻找一种方法,将第一个类别归档页面重定向到我创建的普通页面。

我正在使用此代码,但这会重定向类别存档的所有页面。我只想重定向类别档案的第一页。

function my_page_template_redirect()
{
    if ( is_category( \'news-articles\' ) ) {
        $url = site_url( \'/news\' );
        wp_safe_redirect( $url, 301 );
        exit();
    }
}
add_action( \'template_redirect\', \'my_page_template_redirect\' );

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

如果希望分页的页面不重定向,可以检查is_paged() 布尔值。如果您所在的存档页大于第1页(存档的第一页),则返回true。因此,如果返回false,则表示我们在您想要重定向的页面上。

function my_page_template_redirect(){
    $category_array = array(
        \'news-articles\',
        \'category-2\',
        \'category-3\',
           //...
        \'category-8\'
    );

    if( is_category( $category_array ) && !is_paged() ){
        $url = site_url( \'/news\' );
        wp_safe_redirect( $url, 301 );
        exit();
    }
}
add_action( \'template_redirect\', \'my_page_template_redirect\' );
或者,您可以使用get_query_var(), 看起来像:

function my_page_template_redirect(){
    if( is_category( \'news-articles\' ) && get_query_var( \'paged\' ) == 0 ){
        $url = site_url( \'/news\' );
        wp_safe_redirect( $url, 301 );
        exit();
    }
}
add_action( \'template_redirect\', \'my_page_template_redirect\' );
如果您所需的URL对于每个类别都不同,并且您无法从类别名称获取URL,那么类似的内容可能会满足您的需要,而不会产生太多开销:

function my_page_template_redirect(){
    $category_array = array(
        \'news-articles\'  => \'/news\',
        \'category-2\'     => \'/cat-2\',
        \'third-category\' => \'/third_category\',
          //...
        \'NumberEight\'    => \'/Eight\'
    );

    foreach( $category_array as $category => $url ){
        if( is_category( $category ) && !is_paged() ){
            $url = site_url( $url );

            wp_safe_redirect( $url, 301 );
            exit();
        }
    }
}
add_action( \'template_redirect\', \'my_page_template_redirect\' );

结束

相关推荐

url redirect none www to www

在我的常规设置中,url显示不带www如果我这样放置www我需要做什么。htaccess mod\\u rewrite重定向我的none www(example.com)doamin重定向www(www.example.com)或这是否正确处理url重定向?