Как сделать 301 редирект всех постов определенной категории на страницу?
Скажите, пожалуйста, как можно 301 редирект поставить для всех потов определенной категории, например у меня есть 10 постов, которые принадлежат категории "Cats" необходимо редирект сделать на определенную страницу.
Ниже пример кода для применениея noindex постам из определенной категории, в примере посты категории news, не будут индексироваться. На основе этого кода или другого, нужно сделать 301 редирект на определенную страницу сайта, например на главную. Meta редирект Google не рекомендует, нужен 301.
add_action( 'wp_head', 'skill_noindex', 1 );
if ( !function_exists( 'skill_noindex' ) ) {
function skill_noindex() {
// закрываем от индексации пустые архивные страницы (таксономии, категории, теги)
if( is_archive() && !have_posts() ) {
echo '<meta name="robots" content="noindex, nofollow, noarchive"/>';
}
// закрываем от индексации категорию "отзывы"
if ( is_category( 'testimonials' ) ) {
echo '<meta name="robots" content="noindex, nofollow, noarchive"/>';
}
// проверяем, что тип записи - post, но достаточно проверять is_single()
if ( get_post_type() === 'post' ) {
// получаем категории поста
if ( $categories = get_the_category( get_queried_object_id() ) ) {
foreach ( $categories as $key => $category ) {
// проверяем, что в массиве есть категория Новости
if ( $category->slug == 'news' ) {
echo '<meta name="robots" content="noindex, nofollow, noarchive"/>';
}
}
}
}
}
}
Попробовал скрестить, но с таким кодом обсолютно на всех постах срабатывает редирект, вне зависимости от категории.
add_action( 'template_redirect', 'skill_template_redirect' );
function skill_template_redirect(){
// проверяем, что тип записи - post, но достаточно проверять is_single()
if ( get_post_type() === 'post' ) {
// получаем категории поста
if ( $categories = get_the_category( get_queried_object_id() ) ) {
foreach ( $categories as $key => $category ) {
// проверяем, что в массиве есть категория Новости
if ( $category->slug == 'news' ) {
wp_redirect( 'https://google.com', 301 );
exit();
}
}
}
}
}