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

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

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

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

// 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

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

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

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

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

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

Добавить комментарий

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