WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Как сделать 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
1 месяц назад 8
  • 1
    mi1349 trapeznaya.ucoz.ru

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

    udder 1 месяц назад

    Попробовал, но не заработало, не знаю где ошибка 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 1 месяц назад

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

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

    не работает.

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

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

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

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