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 175
$replacements = apply_filters( 'wpseo_replacements', $replacements, $this->args );