Как добавить любую переменную в сниппет Yoast SEO

Пользу WordPress-плагина Yoast SEO сложно переоценить. Одной из важнейших функций для СЕОшников является автоматическая шаблонная генерация мета-информации для Title и Description. Мы можем составить тайтл или дескрипшн из конструктора, подставляя простые переменные, и это круто.

Однако, разумеется, возникают случаи, когда готовых переменных явно недостаточно. Сейчас мы рассмотрим пример, как добавить свою — любую! — информацию в список переменных шаблона мета-данных Yoast. В результате получится что-то вроде такого:

Предположим, мы хотим использовать переменную myname в сниппетах (вставлять её будем как и все остальные: %%myname%%). Как всегда, редактируем functions.php нашей темы. Вставляем такой код:

Давайте разбираться.

  1. Функция get_myname возвращает то, что мы хотим получить вместо переменной в тайтле и/или дескрипшне.
  2. Функция register_custom_yoast_variables является, грубо говоря, функцией-контейнером для помещения наших функций-замен в хук.
  3. Внутри этой функции мы вызываем Yoast-овую функцию wpseo_register_var_replacement, которая принимает 4 аргумента:
    1. название переменной в шаблоне;
    2. функцию, которая возвращает необходимое значение переменной (либо название функции, как у меня в примере, либо анонимная функция);
    3. тип отображения, пусть будет advanced по рекомендации Yoast;
    4. описание переменной, которое показывается при нажатии «Нужна помощь?» во вкладке «Переменные сниппета».
  4. Обращу внимание, что если необходимо несколько переменных, мы просто копи-пастим функцию wpseo_register_var_replacement столько раз, сколько необходимо, подставляя ей новые значения.
  5. Цепляем функцию через стандартный add_action к хуку, который любезно предоставил Yoast.

И вот результат — Yoast увидел нашу переменную, она отображается в контенте!



Игорь Балькин
Автор: Игорь Балькин. Веб-разработчик с 2001 года. Разработчик сайтов на WordPress, CRM и веб-приложений. Минск, Беларусь. Контактная информация.

Прокомментировать

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

Можно использовать HTML-тэги и атрибуты:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>