Есть ли способ переопределить тег <title>, указанный в header.php?

Во-первых, это не вопрос SEO и вопрос об изменении тега title title. Если вы отвечаете на мой вопрос, это все ответы, которые вы видите.

Итак, у нас есть собственная тема, и у нас есть полный контроль над header.php. Мы знаем, как установить заголовок. В настоящее время это выглядит так:

<head> <title><?php wp_title(' | ', true, 'right'); bloginfo('name'); ?></title> etc... 

Нет, проблема в этом. Для большинства страниц мы хотим, чтобы название отображалось, как указано выше. Просто мы поняли, что для одного конкретного типа сообщений (и связанного с ним шаблона) название CPT не должно публиковаться. Это только для администратора. Странно, но ты туда. Мы не показываем его нигде в шаблоне H1, содержании и т. Д.

Но он отображается в названии.

В идеале нам хотелось бы переопределить заголовок header.php из шаблона, чтобы указать альтернативный заголовок только для этого определенного набора страниц. Это возможно?

Solutions Collecting From Web of "Есть ли способ переопределить тег <title>, указанный в header.php?"

Во-первых, давайте изменим ваш <title> на

 <title><?php wp_title(' | ', true, 'right'); ?></title> 

Поскольку добавление строки заголовка в нее было не очень перспективным, вместо этого лучше всего использовать фильтр, чтобы внести какие-либо изменения в заголовок. Итак, давайте вместо этого ad (in functions.php):

 add_filter('wp_title', 'my_custom_title'); function my_custom_title( $title ) { // Return my custom title return sprintf("%s %s", $title, get_bloginfo('name')); } 

Затем давайте расширим этот удобный маленький фильтр заголовков, чтобы сделать то, что вы хотите сделать:

 add_filter('wp_title', 'my_custom_title'); function my_custom_title( $title ) { if( is_singular("your_post_type")) { return ""; // Return empty } // Return my custom title return sprintf("%s %s", $title, get_bloginfo('name')); } 

Вы можете отфильтровать заголовок.

 add_filter( 'wp_title', 'wpse179527_wp_title' ); function wpse179527_wp_title( $title ) { global $post; if ( is_single() && 'custom-post' == get_post_type( $post ) ) return ''; return $title; }