Недавно появилась задача вывести в 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.
После этого идем в админку плагина Yoast и настройках таксономий добавляем для title переменную число постов в категориях и тегах, таким образом вы можете выводить число постов в любой таксономии, даже в кастомных категориях.