Обычно, чтобы закрыть какие-то страницы от индексации мы делаем это используя robots.txt, но этот файл ничего не знает о контенте сайта и не может определить есть ли какие-то посты в категориях.

Для этого нам понадобится достаточно простой и нетривиальный код:

// Функция печатает теги noindex, nofollow на архивных страницах, если постов на этой архивной странице нет
add_action( 'wp_head', 'skill_noindex', 1 );
if ( ! function_exists( 'skill_noindex' ) ) {
	function skill_noindex() {

		if( ! have_posts() && is_archive() ) {
			echo '<meta name="robots" content="noindex, nofollow, noarchive"/>';
		} 

	}
}

Как видите, мы просто делаем проверку, что находимся на архивной странице и в текущем глобальном запросе постов нет, после чего печатаем соответствующий мета-тег на хуке wp_head().

Учитывайте, что эта функция сработает и для всех таксономий пользовательского типа.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *