Выводим в Title число постов в категории плагином YOAST SEO

Недавно появилась задача вывести в Title страниц блога число постов в категории, при этом на сайте установлен плагин YOAST SEO, у которого для работы с титлами есть штатные переменные (см. в таблице ниже), есть даже и расширенные, позволяющие использовать настройки YOAST при выводе категорий и товаров внутри WooCommerce.

Главной проблемой вывода в Title числа постов в категориях и других таксономиях плагином YOAST SEO оказалось то, что по умолчанию плагин не имеет доступа к данных о числе постов, привязанных к категории или к тегу.

Основные переменные YOAST SEO

Название Переменная Описание
Дата %%date%% Дату публикации (поста или страницы), например «15.05.2025».
Название %%title%% Title — название страницы.
Название родительской страницы %%parent_title%% Название родительской страницы.
Название архива %%archive_title%% Название архива, например: «Рубрика: Новости».
Название сайта %%sitename%% Название сайта.
Краткое описание сайта %%sitedesc%% Краткое описание сайта.
Отрывок %%excerpt%% Выводит отрывок из записи, если есть. Есть нет — выводит отрывок, который генерируется автоматически.
Только отрывок %%excerpt_only%% Выводит отрывок из записи, если есть. Если нет — ничего не выводит.
Метка %%tag%% Выводится только в категории товаров. Выводит название метки, которая есть у товаров в этой категории.
Рубрика %%category%% Выводит название рубрики. Несколько рубрик выводит через запятую.
Основная рубрика %%primary_category%% Основная рубрика блога.
Описание рубрики %%category_description%% Выводит описание рубрики или категории.
Описание метки %%tag_description%% Описание метки (тега).
Название таксономии %%term_title%% Название таксономии (категория, тег, …).
Описание таксономии %%term_description%% Описание таксономии (категория, тег, …).
Поисковая фраза %%searchphrase%% Выводит поисковую фразу на странице результатов поиска.
Разделитель %%sep%% Разделитель, определенный в теге wp_title() темы блога. Как правило это дефис «-»

Но ни одной из этих переменных числа постов в категориях или тегах не вывести в тайтлах, поэтому придется добавить свой код и создать собственные переменные для YOAST с помощью файла functions.php в текущей WP-теме.

Собственные переменные YOAST SEO для title

Собственные переменные определяем в файле functions.php шаблона, используемого в данный момент для сайта, для чего открываем в «редакторе тем» functions.php и в конце кода дописываем вот такой код:

function get_cat_count_posts() {

$countcat = get_term(get_queried_object_id());
$return = $countcat->count;
return $return;

}

function register_custom_yoast_variables() {

wpseo_register_var_replacement('%%catcountposts%%', 'get_cat_count_posts', 'advanced', 'Кол-во постов в категории');

}

add_action('wpseo_register_extra_replacements', 'register_custom_yoast_variables');

В данном коде функция get_cat_count_posts возвращает число записей, которое мы хотим вывести в title (и/или description).

Функция register_custom_yoast_variables является контейнером для помещения функций-замен в хук — внутри этой функции мы вызываем Yoast-овую функцию wpseo_register_var_replacement, которая принимает четыре аргумента:

  • название переменной в шаблоне;
  • функцию, возвращающую необходимое значение переменной;
  • тип отображения, плагин Yoast рекомендует тип «advanced»;
  • описание переменной во вкладке «Переменные сниппета» в админке Yoast SEO.

Если вам нужно добавить несколько собственных переменных для работы в Yoast SEO, то достаточно скопипастить функцию wpseo_register_var_replacement и подставить ей новые значения. После чего «цепляем» функцию wpseo_register_extra_replacements через стандартный add_action к хуку, имеющемуся в плагине Yoast SEO.

Выводим в Title число постов в категории плагином YOAST SEO

После этого идем в админку плагина Yoast и настройках таксономий добавляем для title переменную число постов в категориях и тегах, таким образом вы можете выводить число постов в любой таксономии, даже в кастомных категориях.

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