如果希望分页的页面不重定向,可以检查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\' );