@Pista

Как добавить noindex для постов из определенной категории Wordpress?

Использую плагин Rank Math, нужно запретить индексировать посты определенной категории.
На форуме плагина предложили использовать следующий код:
/**
 * Allows filtering of the robots meta data.
 *
 * @param array $robots The meta robots directives.
 */
add_filter( 'rank_math/frontend/robots', function( $robots ) {
	return $robots;
});

https://support.rankmath.com/ticket/set-noindex-fo...

Не знаю как сюда добавить ID категории, где все посты нужно запретить для индексации.

Вот решение на Github, но для плагина YOAST
https://github.com/Yoast/wordpress-seo/issues/387

Помогите, пожалуйста :)
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
Могу предложить вам решение не связанное с Rank Math или Yoast. Вы можете написать любые условия и вывести meta noindex на хуке wp_head

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"/>';
					}
				}
			}
		}

	}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы