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

Как добавить 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 месяц назад 8
  • 2
    campusboy3860 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';
    	$terms     = [ 5, 'books', 'Здоровье' ];
    	$taxonomy  = 'category';
    
    	if ( is_singular( $post_type ) && has_term( $terms, $taxonomy ) ) {
    		$robots['index'] = 'noindex';
    	}
    
    	return $robots;
    } );

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

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