WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

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

Использую плагин 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-for-posts-with-a-specific-tag-or-category/

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

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

0
udder
1.5 года назад 8
  • 3
    campusboy4058 www.youtube.com/c/wpplus

    В Rank Math есть фильтр, позволяющий изменить настройки индексации:

    add_filter( 'rank_math/frontend/robots', function ( $robots ) {
    	return $robots;
    } );

    При просмотре записи в $robots мы можем увидеть следующую информацию (может меняться, в зависимости от настроек индексации плагина или настроек самой записи):

    Array (
    	[index] => index
    	[follow] => follow
    )

    Доработаем код, чтобы запретить индексирование записей из определенной рубрики:

    add_filter( 'rank_math/frontend/robots', function ( $robots ) {
    	$post_type = 'post';
    	// $post_type = array( 'post', 'page' );
    	$terms     = [ 5, 'books', 'Здоровье' ];
    	$taxonomy  = 'category';
    
    	if ( is_singular( $post_type ) && has_term( $terms, $taxonomy ) ) {
    		$robots['index'] = 'noindex';
    	}
    
    	return $robots;
    } );

    Данный код универсальный, его можно использовать для любых типов записей и таксономий. Ознакомьтесь с функциями has_term() и is_singular(), чтобы правильно изменить значения под свои нужды.

    udder 8 месяцев назад

    Скажите, пожалуйста, как в переменную $post_type добавить еще page?
    попробовал так: $post_type = 'post', 'page'; не сработало.

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

    Спустя полгода опять осенило меня, что удобнее указать категории , которые НУЖНО индексировать, а не перечень категорий, которые исключить из индекса smile Или такой обратный ход не получится реализовать? @campusboy

    Андрей месяц назад

    почему этот код работает только с админки? Если разлогиниться на сайте то код уже не выполняется

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