Удалить название сайта из тега <title>

9 апр. 2013 г., 15:18:26
Просмотры: 16.9K
Голосов: 2

Сейчас мои теги <title> выглядят так:

Название записи блога | Название сайта

Как мне удалить "Название сайта", чтобы теги <title> выглядели так:

Название записи блога

За исключением, конечно, главной страницы, где тег <title> должен быть:

Название сайта

Учтите, что я полный новичок в WordPress.


Редактирование: Вот мой текущий тег <title> из header.php:

<title>
<?php
if ( defined( 'WPSEO_VERSION' ) ) {
    // WordPress SEO активирован
        wp_title();

} else {

    // WordPress SEO не активирован
    wp_title( '&#124;', true, 'right' );
}
?>
</title>
3
Комментарии

Если у вас активен какой-либо SEO-плагин, попробуйте найти его настройки заголовков. Если нет, сообщите нам. :)

fuxia fuxia
9 апр. 2013 г. 15:36:32

У меня не активны никакие SEO-плагины.

Miscreant Miscreant
9 апр. 2013 г. 15:39:44

Тогда почему у вас есть условие if ( defined( 'WPSEO_VERSION' ) ) {}?

Chip Bennett Chip Bennett
9 апр. 2013 г. 15:47:42
Все ответы на вопрос 6
2

Лучшее (и самое простое) решение — использовать фильтр wp_title.

Сначала приведите в порядок вызов <?php wp_title(); ?> в вашем шаблоне. Замените текущий код на следующий:

 wp_title( '&#124;', true, 'right' );

Затем в файле functions.php (или в functions.php дочерней темы — с учётом стандартных предостережений) добавьте следующий код:

function wpse95147_filter_wp_title( $title ) {
    if ( is_single() || ( is_home() && !is_front_page() ) || ( is_page() && !is_front_page() ) ) {
        $title = single_post_title( '', false );
    }
    return $title;
}
add_filter( 'wp_title', 'wpse95147_filter_wp_title' );

Этот фильтр полностью перезапишет вывод $title в контексте отдельных страниц. (Условная конструкция взята напрямую из ядра WordPress, из определения самой функции wp_title().)

Насколько я знаю, WordPress не выводит название сайта в функции wp_title(); если вы видите его, значит, он добавляется чем-то другим (возможно, вашей темой?). Тем не менее, если вы хотите выводить его, просто добавьте дополнительное условие в фильтр, например:

function wpse95147_filter_wp_title( $title ) {
    if ( is_single() || ( is_home() && !is_front_page() ) || ( is_page() && !is_front_page() ) ) {
        $title = single_post_title( '', false );
    }
    if ( is_front_page() && ! is_page() ) {
        $title = esc_attr( get_bloginfo( 'name' ) );
    }
    return $title;
}
add_filter( 'wp_title', 'wpse95147_filter_wp_title' );
9 апр. 2013 г. 16:07:16
Комментарии

Моя родительская тема добавляла название блога к заголовку. Я смог использовать это решение, чтобы исправить это, просто увеличив параметр priority в вызове add_filter. Это гарантирует, что наш новый фильтр выполнится после фильтра родительской темы. Я установил приоритет на 100: add_filter('wp_title', 'wpse95147_filter_wp_title', 100);

Kyle Kyle
5 сент. 2014 г. 20:04:29

+1 за "что-то добавляет это (возможно, ваша Тема?)."

Joshua Goossen Joshua Goossen
4 мая 2015 г. 23:44:16
0

Добавьте эту строку в ваш файл header.php

<title><?php wp_title();?></title>

Добавьте следующий код в файл functions.php вашей темы

function your_wp_title( $title, $sep ) {
    global $paged, $page;
    if(is_front_page()){        
        $title = get_bloginfo( 'name' );   
        return $title;
    } else {
        if ( is_feed() )            
        // Добавляем название сайта
        return $title;
    }
}
add_filter( 'wp_title', 'your_wp_title', 10, 2 );

Ссылка для справки:http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_title

9 апр. 2013 г. 16:09:13
0

В моем файле шаблона header.php я заменил строку с title на эту:

<title><?php is_front_page() ? woo_title() : wp_title( '' ); ?></title>

В моем случае я использую шаблон от woothemes, поэтому используется вывод woo_title().

Здесь в одной строке проверяется, находимся ли мы на главной странице. Если true - выводится название блога/сайта, если false - выводится только заголовок записи или страницы без названия сайта.

15 июл. 2014 г. 09:43:38
0

У меня была такая проблема с записями, поэтому я поискал в интернете и создал небольшой плагин, который убирает название блога из записей.

########### начало удаления названия блога из записей #######
function wp_abdul0201_wp_title( $title ) {
    if ( is_single() ) {
        $title = single_post_title( '', false );
    }
    return $title;
}
add_filter( 'pre_get_document_title', 'wp_abdul0201_wp_title' );
########### конец удаления названия блога из записей #######

Обратите внимание на этот код:

if ( is_single() )

Он применяется только к заголовкам записей. Вы можете добавить больше условий, например:

if ( is_single() || is_archive ) 

Здесь я добавил также и архивные страницы. Надеюсь, вы поняли общую идею, как это работает.

23 янв. 2017 г. 23:43:27
0

Самый простой способ, который я нашел — это в настройках WordPress убрать "Заголовок" сайта. Не самый программистский способ, но самый легкий.

16 июл. 2021 г. 17:51:43
1
-1
<?php wp_title(false); ?>

Попробуйте это, а также узнайте больше здесь

&#124; обозначает вертикальную черту в качестве разделителя. Аргумент true означает $display - выводить заголовок или нет. Третий аргумент определяет позицию разделителя.

9 апр. 2013 г. 15:44:23
Комментарии

Пожалуйста, добавьте объяснение к вашему ответу: почему это может решить проблему? Где в вашем ответе указано название сайта?

fuxia fuxia
9 апр. 2013 г. 15:45:49