skillbox banner 468x60skillbox banner 728x90skillbox banner 930x180smsc banner 468x60smsc banner 728x90smsc banner 930x180etxt banner 468x60etxt banner 728x90etxt banner 930x180

Как создать свои переменные для заголовка в Yoast

Yoast формирует тег <title> и мета-тег og:title по шаблону %%title%% %%page%% %%sep%% %%sitename%%.

  • title — заголовок
  • page — номер страницы (для страниц с пагинацией)
  • sep — разделитель
  • sitename — название сайта

Например, для этой страницы, будет сформирован заголовок:

Как сделать правильную html-разметку хлебных крошек Yoast | Zolin Digital

Но иногда вам может понадобиться вывести дополнительный текст, а для этого нужно создать свою переменную для шаблона. Рассмотрим пример:

// define the custom replacement callback
function get_seo_before_title() {

	if ( is_archive() ) {

		if ( is_archive( 'nations' ) ) {
			return 'Спортсмены и атлеты страны ';
		}

	}

}

// define the custom replacement callback
function get_seo_after_title() {

	if ( is_tax( 'competitions' ) ) {
		return ' — расписание и результаты';
	} 

	if ( is_single() ) {

		if ( get_post_type() === 'athlete' ) {
			return ' — биография, статистика, новости, результаты, инстаграм';
		}

	}

}

// %%BeforeTitle%% %%title%% %%AfterTitle%%
// %%BeforeTitle%% %%term_title%% %%AfterTitle%%

// define the action for register yoast_variable replacments
function register_custom_yoast_variables() {
	wpseo_register_var_replacement( '%%BeforeTitle%%', 'get_seo_before_title', 'advanced', 'Some before title text' );
	wpseo_register_var_replacement( '%%AfterTitle%%', 'get_seo_after_title', 'advanced', 'Some after title text' );
}

// Add action
add_action('wpseo_register_extra_replacements', 'register_custom_yoast_variables');

Итак, в этой функции мы определяем две переменные — %%BeforeTitle%% и %%AfterTitle%%, которые по задумке будем использовать при формировании всех заголовков.

Чтобы это работало, нужно перейти в настройки Yoast SEO → Отображение в поисковой выдаче, во вкладке Типы содержимого изменить все шаблоны на %%BeforeTitle%% %%title%% %%AfterTitle%%, а в Таксономии на %%BeforeTitle%% %%term_title%% %%AfterTitle%%.

Теперь переменные будут формировать некоторый текст до и после основного заголовка в зависимости от содержимого.

Переменная $post в этот момент определена, поэтому можно использовать функции вида get_the_title(), get_post_meta(get_the_id(), 'example'), get_comments_number() и подобные.

Если вы планируете использовать get_the_title() для получения текста заголовка, то логичнее создать переменную %%InsteadTitle%% и заменить ей переменную %%title%%.

Как создать переменную год в Yoast

В заголовке вам может понадобится переменная %%CurrentYear%%, которая будет содержать текущий год. Это может пригодиться, например, если у вас на сайте есть информация о событиях, которые происходят ежегодно.

// define the custom replacement callback
function get_seo_current_year() {

	$current_year = date('Y');

	return $current_year . ' год';
}


// define the action for register yoast_variable replacments
function register_custom_yoast_variables() {
	wpseo_register_var_replacement( '%%CurrentYear%%', 'get_seo_current_year', 'advanced', 'Current Year' );
}

// Add action
add_action('wpseo_register_extra_replacements', 'register_custom_yoast_variables');

Как видите, принцип создания переменной точно такой же, как и в предыдущем примере.

Кстати, текущий год так же можно включить в переменную %%AfterTitle%% по нужному вам условию. Например, выводите год, если get_post_type() === 'afisha' или get_post_meta( get_the_ID(), 'current_year', true ) == 'true

О том, как сделать шорткод с текущем годом для использования в тексте см. здесь.

jivo banner 480x320jivo banner 728x90jivo banner 120x600skillbox banner 480x320skillbox banner 728x90skillbox banner 120x600beget banner 480x320beget banner 728x90beget banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как правильно подключать стили и cкрипты в дочерней теме WordPress?

На эту тему написано уже десятки статей, но тема продолжается обсуждаться, а в чатах и на форумах люди снова и снова задают вопросы и сталкиваются с проблемами. Давайте вместе попробуем на примерах разобраться как же правильно подключать стили и скрипты в WordPress. Начнем по порядку. Есть хук wp_enqueue_scripts, который срабатывает в момент подключения в очередь…
Подробнее

Как изменить robots.txt в мультисайте WordPress

WordPress динамически создает robots.txt. Чтобы перезаписать его при обычной установке без использования нескольких сайтов, вы можете просто загрузить статический файл robots.txt на сервер. При установке системы мультисайтов это приведет к перезаписи файла robots.txt для всех сайтов, что не всегда является нужным результатом. В этой заметке мы обсудим, как можно изменить robots.txt для отдельных сайтов мультисайта….
Подробнее

Как создать AJAX-форму на WordPress без плагинов

WordPress имеет достаточно простую методологию обработки Ajax-запросов. Ajax-запросами называют такие запросы, которые происходят без перезагрузки страницы и в результате работа с сайтом становится быстрее и удобнее для конечного пользователя. Заранее оговорюсь, что в репозитории WordPress существуют десятки нормальных плагинов для работы с формами. С помощью них можно настроить поля, их валидацию, содержимое, интегрировать поддержку Ajax,…
Подробнее