Задать вопрос
  • Как переопределить заголовок title поверх плагинов?

    Kianl
    @Kianl Автор вопроса
    Печальный веб-разработчик
    Короче, как всегда сам решил проблему. Смотрите, че придумал.

    Поскольку title обеспечивается add_theme_support('title-tag'); , то его нужно отключить. Но сделать это нужно в определенный момент - когда WP еще не вписал заголовок title в head, но после того, как становится известна текущая страница (начинают работать функция is_tax() и ей подобные).

    Я немного поковырялся и нашел в документации хронологию событий ВП: https://codex.wordpress.org/Plugin_API/Action_Reference

    Для решения вопроса нужно событие parse_query.

    // Проверяем страницу и удаляем поддержку title-tag
    add_filter('parse_query', 'my_theme_remove_title_tag', 999, 1);
    function my_theme_remove_title_tag() {
    	if(is_post_type_archive() || is_tax()) {
    		remove_theme_support('title-tag');
    	}
    }
    
    // А теперь просто строим нужный нам заголовок и выводим его в <head>
    add_filter('wp_head', 'my_theme_custom_title', 999, 1);
    function my_theme_custom_title(){
    	// Тут что-то делаем с заголовком....
    	if(is_post_type_archive()) {
    		$title = 'Это будет заголовок архива!';
    	}
           
    	// А тут его выводим
    	echo '<title>' . $title . '</title>';
    }

    Таким образом изменяется заголовок только нужных страниц поверх плагинов (по крайней мере поверх All in SEO Pack), а на остальных остается нетронутым. По-моему очень круто получилось!

    Может кому пригодится :)
    Ответ написан
    1 комментарий