WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Получай пассивный доход от сайта с помощью браузерных PUSH уведомлений

Как сделать 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"/>';
		  }
		}
	  }
	}

  }
}
0
udder
3 месяца назад 8
  • 1
    mi1356 trapeznaya.ucoz.ru

    in_category... и далее wp_redirect( $location, $status );

    udder 3 мес назад

    Попробовал, но не заработало, не знаю где ошибка sad

    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();
    	  }
      }
      }
      }
    }
    el-lable 3 мес назад

    редирект вроде на init вешают

    mi13 3 мес назад
    add_action( 'init', 'skill_template_redirect' );
    function skill_template_redirect(){
    if(is_single() && in_category( 'news' )) {
    wp_redirect( 'https://google.com', 301 );
    }
    }
    udder 3 мес назад

    не работает.

    P.S постоянная ссылка не содержит имя категории, только название

    Комментировать
  • 0
    el-lable410 el-lable.ru

    Вы что-то не то делаете.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация