Intereting Posts
comments_popup_link () – как загружать разные классы / изображения в соответствии с условиями разных комментариев? Фильтрация настраиваемого типа сообщений по пользовательской таксономии в шаблоне архива Расширенный поиск перенаправляется на другую страницу, затем фильтрует дальше Конкретный размер изображения генерируется без регистрации Git beginner: отслеживание изменений на сервере Возможно ли сделать WordPress PHP быстрее с помощью кеширования или компиляции? Почему не будет стиль child.css дочерней темы переопределить css плагина Получить теги для post_type $ wp_query-> queried_object-> Предупреждение о выдаче идентификатора: неопределенное свойство Как удалить некоторые параметры экрана и мета-ящики из добавления / редактирования типа сообщения? Изменить форму поиска Twentyeleven Text Непрерывные ссылки WordPress не работают (странный способ) Обрезаемая фатальная ошибка: объект класса WP_Term не может быть преобразован в строку Заменить первое появление слова со ссылкой Добавление условного содержимого в один шаблон post-type

Пользовательский атрибут тега title с wp_title ()

Могу ли я добавить itemprop в элемент title и использовать wp_head() и add_theme_support( "title-tag" ) ?

Я хочу создать тему и утвердить ее на wordpres.org, который использует микроданные.

Предыдущее среднее я хочу, чтобы код HTML выглядел следующим образом:

 <html itemscope itemtype="http://schema.org/WebPage" lang="en-US"> .... <title itemprop="name">WordPress Weblog Theme – Just another WordPress site</title> .... 

Теперь я не использую add_theme_support( "title-tag" ) и использую следующий код в header.php?

 <title itemprop="name"><?php echo wp_get_document_title(); ?></title> <?php wp_head(); ?> 

Теперь плагин проверки темы гласит:

ТРЕБУЕТСЯ: тема должна иметь вызов wp_title (), в идеале в файле header.php. ТРЕБУЕТСЯ: тема должна иметь теги, в идеале – в файле header.php. РЕКОМЕНДУЕТСЯ: Ссылка на add_theme_support ("title-tag") не найдена в теме. Рекомендуется, чтобы тема реализовала эту функциональность для WordPress 4.1 и выше.

Solutions Collecting From Web of "Пользовательский атрибут тега title с wp_title ()"

Поскольку все _wp_render_title_tag делает проверку на поддержку темы title-tag и завершают теги <title> , нет никакой причины, по которой ваша существующая реализация «не пройдет», поскольку правильная реализация уже идентична через:

 <title itemprop="name"><?php echo wp_get_document_title(); ?></title> 

когда _wp_render_title_tag делает:

 echo '<title>' . wp_get_document_title() . '</title>' . "\n"; 

(так как «Проверка темы» является контрольной проверкой, так что, если она не может сказать, что на самом деле соблюдался стандарт, это теоретически не должно препятствовать ее прохождению?)

Но в любом случае вы можете обойти это и улучшить существующую реализацию одновременно, добавив фильтр переопределения настроек …, отвязав существующее действие (как это было предложено @birgire) и (мое добавление), подключив функцию обертывания, которая вызывает _wp_render_title_tag и применяет к нему фильтр:

 if (has_action('wp_head','_wp_render_title_tag') == 1) { remove_action('wp_head','_wp_render_title_tag',1); add_action('wp_head','custom_wp_render_title_tag_filtered',1); } function custom_wp_render_title_tag_filtered() { if (function_exists('_wp_render_title_tag')) { ob_start(); _wp_render_title_tag(); $titletag = ob_get_contents(); ob_end_clean(); } else {$titletag = '';} return apply_filters('wp_render_title_tag_filter',$titletag); } 

Так как лучше использовать фильтр в любом случае ……. Тогда вы можете легко добавить свои собственные варианты использования, используя новый фильтр:

 add_filter('wp_render_title_tag_filter','custom_wp_render_title_tag'); function custom_wp_render_title_tag($titletag) { $titletag = str_replace('<title>','<title itemprop="name">',$titletag); return $titletag; } 

Конечно, было бы намного чище, если бы основная функция была просто обновлена ​​до:

 function _wp_render_title_tag() { if ( ! current_theme_supports( 'title-tag' ) ) { return; } echo apply_filters( 'wp_render_title_tag' , '<title>' . wp_get_document_title() . '</title>' . "\n" ); } 

К сожалению, повторение <title> в настоящее время жестко привязано в general-template.php (строка 1062). Это частная функция, что означает, что вы не можете изменять или отменять ее. Таким образом, на данный момент вы не можете изменить тег. Возможно, вы захотите выпустить trac, чтобы попросить, чтобы они поддерживали это в будущем.