почему фильтр wp_title вообще не работает? - PullRequest
0 голосов
/ 16 мая 2019

Я знаю, что есть и другие подобные вопросы, но не нашел надежного ответа. Итак:

Сначала активируйте вещь (просто код):

add_action( 'after_setup_theme', 'theme_setup' );
function theme_setup() {
  add_theme_support('title-tag');
}

Во-вторых, удалите тег заголовка из header.php.

В-третьих, в шаблонах страниц перед вызовом get_header() добавьте что-то вроде этого:

  add_filter('wp_title', 'set_custom_title', 10, 3);
  function set_custom_title($title, $sep, $seplocation){
    return 'test';
  }

Ну, это вообще не работает, в любом шаблоне, будь то страница, архив, пользовательская таксономия или архив пост-типа. Нет, ничего. Wordpress генерирует заголовки сам по себе.

Почему? Я делаю что-то неправильно? Обратите внимание, что этот код когда-то давно работал: используется в других сайтах / темах.

Возможно, это проблема wp5.2.0?

Ответы [ 2 ]

0 голосов
/ 16 мая 2019

Попробуйте использовать следующий код -

add_filter('document_title_parts', function($titles){
    return array('title' => 'Custom Title');
});
0 голосов
/ 16 мая 2019

Итак, благодаря @Vel, ответ заключается в том, чтобы повторно добавить тег заголовка (даже если в предыдущих версиях wp> не знал, до какой версии вы должны были удалить его вместо заголовка).

Текущий рабочий код для меня:

//functions.php
add_action( 'after_setup_theme', 'theme_setup' );
function theme_setup() {
  add_theme_support('title-tag');
}

//header.php
<title><?php wp_title('|', true, 'right'); ?> | <?php echo get_bloginfo('name') ?></title>

//page templates
$window_title = // do something
add_filter('wp_title', function($title, $sep, $seplocation) use($window_title){ return $window_title; }, 10, 3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...