Вы можете создать свои переменные для йоаста. Вот примеры:
function get_seo_instead_title() {
if ( is_single() ) {
if ( get_post_type() === 'route' ) {
$roads_subtype = get_post_meta(get_the_ID(), 'subtype', true );
if ( $roads_subtype == 'bus' ) {
return 'Расписание автобусов ' . get_the_title();
} else {
return 'Расписание маршрутов ' . get_the_title();
}
}
}
}
function get_seo_before_title() {
if ( is_tax() ) {
if ( is_tax( 'routes' ) ) {
return 'Справочник маршрутов города ';
}
}
}
function get_seo_after_title() {
if ( is_single() ) {
if ( get_post_type() === 'platform' ) {
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' );
wpseo_register_var_replacement( '%%InsteadTitle%%', 'get_seo_instead_title', 'advanced', 'Some instead title text' );
}
// Add action
add_action('wpseo_register_extra_replacements', 'register_custom_yoast_variables');
Как видите, переменная $post определена, поэтому работают все функции типа
get_the_ID()
,
get_the_title()
,
get_post_meta()
и т.д. Общие шаблоны находятся в соседних вкладках того скриншота, который вы показываете - Типы содержимого и Таксономии