wpseo_replacements
Позволяет изменить то на что будет заменен плейсхолдер, который используется в шаблоне заголовка. Например %%term_hierarchy%%.
Использование
add_filter( 'wpseo_replacements', 'wp_kama_wpseo_replacements_filter', 10, 2 );
/**
* Function for `wpseo_replacements` filter-hook.
*
* @param array $replacements The replacements.
* @param array $args The object some of the replacement values might come from, could be a post, taxonomy or term.
*
* @return array
*/
function wp_kama_wpseo_replacements_filter( $replacements, $args ){
// filter...
return $replacements;
}
- $args(массив)
- Массив значений плейсхолдеров. Элемент массива выглядит так:
Плейсхолдер => Значение, например'%%term_hierarchy%%' => 'Тело > Рука'. - $args
Дополнительная информация в виде аргументов.
protected $defaults = [ 'ID' => '', 'name' => '', 'post_author' => '', 'post_content' => '', 'post_date' => '', 'post_excerpt' => '', 'post_modified' => '', 'post_title' => '', 'taxonomy' => '', 'term_id' => '', 'term404' => '', ];
Примеры
#1 Переворачиваем порядок терминов в заголовке
// Переворачиваем порядок терминов в заголовке для всех таксономий (для плейсхолдера `term_hierarchy`)
add_filter( 'wpseo_replacements', function( $replacements, $args ){
if( isset( $replacements['%%term_hierarchy%%'] ) ){
$replacement = & $replacements['%%term_hierarchy%%'];
$separator = ' ' . YoastSEO()->helpers->options->get_title_separator() . ' ';
$explode = array_reverse( explode( $separator, $replacement ) );
$replacement = implode( $separator, $explode );
}
return $replacements;
}, 10, 2 );
Где вызывается хук
wpseo_replacements
yoast/inc/class-wpseo-replace-vars.php 176
$replacements = apply_filters( 'wpseo_replacements', $replacements, $this->args );