WordPress плагин Yoast SEO имеет достаточно хороший функционал в плане набора нужных хуков. Позволяющий гибко манипулировать данными для построения своих мета-тегов.
В данной статье рассмотрим пример, когда нам нужно для определенной страницы изменить title и meta-description сайта. Пример простой, и будет отображать лишь работу самих хуков. Логику же можно использовать любую. К примеру в одной из своих работ, мне пришлось прибегнуть к динамическому построению названия и описания в зависимости от выбранного региона и предоставляемых услуг. Это был каталог услуг, разбитый по странам, областям, городам, и списку категорий.
Прежде чем выполнять работы, убедитесь что на вашем сайте установлен и включен плагин Yoast SEO. Т.к. без этого, дальнейшие работы безсмысленны.
Давайте откроем файл functions.php нашей темы и добавим следующий код:
/** * wpseo_title */ add_filter('wpseo_title', function($title){ if(is_single('chto-takoe-lorem-ipsum')) { $title = 'Новый заголовок'; } return $title; }, 10, 1); /** * wpseo_metadesc */ add_filter('wpseo_metadesc', function($metadesc){ if(is_single('chto-takoe-lorem-ipsum')) { $metadesc = 'Новое описание'; } return $metadesc; }, 10, 1);
Здесь имеется два фильтра:
- wpseo_title — отвечает за отображение title страницы
- wpseo_metadesc — отвечает за отображение meta-description страницы
В первом и во тором фильтре, используя условный тег WordPress «is_single», по переданному в качестве единственного аргумента «slug» страницы (равный «chto-takoe-lorem-ipsum»), мы определяем, что сейчас просматривается именно та страница, для которой нужно внести требуемые изменения. Переопределив значения переменных, мы выходим из фильтра.
На этом все)
'.. К примеру в одной из своих работ, мне пришлось прибегнуть к динамическому построению названия и описания в зависимости от выбранного региона и предоставляемых услуг. ..' И как вы это сделали? У меня сейчас сожая задача. При переключении табов на странице с помощью ajax получаю парамет. Как изменить в зависимости от этого параметра загаловок страницы успользуя хук "wpseo_title".
Если я правильно все понял - то никак. Вы можете на фронте поменять title через JS, получив его данные по ajax.
Через JS проще простого, но вот СЕО-шники простят чтобы именно title (заголовк) страницы поменялся по кликам табов. Вы считаете это не разрешимая задач?
Я же правильно понял, содержимое табов подгружается аяксом?
Да, совершенно верно. Думаю, что изменить title таким способом все таки не возможно. Хук , который меняет загаловок страницы уже сработал.
Если аяксом, то не возможно.