Пользу WordPress-плагина Yoast SEO сложно переоценить. Одной из важнейших функций для СЕОшников является автоматическая шаблонная генерация мета-информации для Title и Description. Мы можем составить тайтл или дескрипшн из конструктора, подставляя простые переменные, и это круто.
Однако, разумеется, возникают случаи, когда готовых переменных явно недостаточно. Сейчас мы рассмотрим пример, как добавить свою — любую! — информацию в список переменных шаблона мета-данных Yoast. В результате получится что-то вроде такого:
Предположим, мы хотим использовать переменную myname в сниппетах (вставлять её будем как и все остальные: %%myname%%). Как всегда, редактируем functions.php нашей темы. Вставляем такой код:
Давайте разбираться.
- Функция get_myname возвращает то, что мы хотим получить вместо переменной в тайтле и/или дескрипшне.
- Функция register_custom_yoast_variables является, грубо говоря, функцией-контейнером для помещения наших функций-замен в хук.
- Внутри этой функции мы вызываем Yoast-овую функцию wpseo_register_var_replacement, которая принимает 4 аргумента:
- название переменной в шаблоне;
- функцию, которая возвращает необходимое значение переменной (либо название функции, как у меня в примере, либо анонимная функция);
- тип отображения, пусть будет advanced по рекомендации Yoast;
- описание переменной, которое показывается при нажатии «Нужна помощь?» во вкладке «Переменные сниппета».
- Обращу внимание, что если необходимо несколько переменных, мы просто копи-пастим функцию wpseo_register_var_replacement столько раз, сколько необходимо, подставляя ей новые значения.
- Цепляем функцию через стандартный add_action к хуку, который любезно предоставил Yoast.
И вот результат — Yoast увидел нашу переменную, она отображается в контенте!
Valerij пишет:
Класс! Спасибо!!!
Олег пишет:
Доброго дня, в премиум тур-теме есть произвольное поле tourmaster-tour-price которое должно отобразить цену тура. Я пытался его добавить в yoast что бы вывести в титле… Не заработало
function get_myname() {
/* здесь наша бизнес-логика */
$return = ‘Этот текст отобразится в title и meta description!’;
return $return;
}
function register_custom_yoast_variables() {
wpseo_register_var_replacement(‘%%tourmaster-tour-price%%’, ‘get_myname’, ‘advanced’, ‘Этот пояснительный текст отобразится в списке Переменные сниппета’);
}
add_action(‘wpseo_register_extra_replacements’, ‘register_custom_yoast_variables’);