- WordPress. Заголовок страницы
- Выводим заголовок страницы
- Фильтры для манипуляций с заголовком
- pre_get_document_title
- document_title_separator
- document_title_parts
- Добавляем поддержку title-tag
- wp_get_document_title() – вывод тайтла страницы
- Как формируются заголовки:
- Изменение разделителя заголовка «–» через хук
- Удаление / Изменение некоторых частей заголовков
- Создание собственных правил формирования произвольных заголовков
- the_title() WP 0.71
- Возвращает
- Использование
- Примеры
- #1. Выведем на экран заголовок записи в html теге H3:
- #2. Вывод заголовка с текстом до него:
- #3. Получим заголовок записи в переменную
- Список изменений
- Код the_title() the title WP 5.8.1
- Cвязанные функции
- title (заголовок)
- Записи: посты, страницы, .
- Записи: посты, страницы, .
- Заголовок страницы тег Title для WordPress
- wp_get_document_title() WP 4.4.0
- Возвращает
- Использование
- Примеры
- #1 Демонстрация работы
- #2 Вывод TITLE заголовка страницы
- #3 Выведем свой заголовок, используя фильтр
- #3.1 Переопределяем функцию
- #4 Изменим разделитель между заголовком и названием сайта
- #5 Удалим названия сайта в конце заголовка
- #6 Удалим описания сайта из заголовка главной страницы
- Заметки
- Список изменений
- Код wp_get_document_title() wp get document title WP 5.8.1
- Cвязанные функции
- title (заголовок)
- Другие функции темы
WordPress. Заголовок страницы
Выводим заголовок страницы
Функция wp_get_document_title() получает заголовок текущей страницы (документа), который принято выводить в теге title . Это замена для устаревшей функции wp_title() . Для главной страницы функция возвращает название сайта + тире + краткое описание. Название и описание функция получает из настроек сайта. Для страницы записи функция возвращает название поста + тире + название сайта.
Фильтры для манипуляций с заголовком
В WordPress 4.4 добавилось несколько новых фильтров для манипуляции заголовком окна браузера, которые можно использовать внутри темы или плагина.
pre_get_document_title
Фильтр позволяет переопределить работу функции wp_get_document_title() :
document_title_separator
Фильтр для изменения разделителя между частями заголовка.
document_title_parts
Фильтр частей заголовка, из которых состоит title . Представлен в виде ассоциативного массива, элементы которого можно редактировать, удалять или добавлять.
Добавляем поддержку title-tag
Если добавить теме поддержку title-tag , то в части документа не нужно указывать тег . Тег будет добавлен автоматически функцией _wp_render_title_tag() , которая привязана к событию wp_head . Это событие вызывается из функции wp_head() . Вызов самой функции wp_head() должен быть в файле header.php темы, внутри тега .
При автоматическом добавлении тега WordPress будет использовать функцию wp_get_document_title() для вывода заголовка, т.е. будет добавлен код:
В этом можно убедиться, если заглянуть в исходный код функции _wp_render_title_tag() :
Источник
wp_get_document_title() – вывод тайтла страницы
Когда-то давно, для того, чтобы вывести заголовок страницы (тут я имею ввиду то, что у нас находится между тегами , мы производили различные махинации с функцией wp_title() , больше этого делать не нужно, так как wp_get_document_title() более правильная, универсальная и автоматизированная в этом отношении.
Существует два возможных способа использования этой функции.
Первый – вставляем между тегами это:
Второй – используем функцию add_theme_support() в вашем файле functions.php и больше ничего делать не нужно – функция wp_get_document_title() сработает автоматически через функцию/хук wp_head(). В этому случае тегов , прописаных в файлах темы быть не должно!
Как формируются заголовки:
- is_front_page(),
главная страница,
<Название сайта>– - is_404(),
страница ошибки 404,
Страница не найдена – - is_search(), страница результатов поиска,
Результаты поиска «<Поисковая фраза>» – - is_post_type_archive(),
архивы типа записей,
<Множественное число названия CPT>– - is_tax(), is_category(), is_tag(),
архивы любых таксономий,
<Заголовок элемента таксономии>– - is_home() ИЛИ is_singular(),
страница блога не на главной, либо страница записи/страницы
<Заголовок страницы>– - is_author()
страница архива автора
<Отображаемое имя автора>– - is_year()
страница архива по годам
<Год>– - is_month()
страница архива по месяцам
<Месяц и год>– - is_day()
страница архива по дням
<Тупо дата>– <Название сайта>
Также при нахождении на страницах постраничной навигации is_paged() будет добавляться – Страница <Номер страницы>.
Изменение разделителя заголовка «–» через хук
Функция имеет внутри себя несколько хуков, самой простой позволяет изменить знак разделения, использующийся в заголовке, например если вы вдруг захотите использовать запятую или «|», то можете поменять это следующим кодов в ваш functions.php :
Удаление / Изменение некоторых частей заголовков
Окей, вы наверное заметили, что <Название сайта>(ну заметили же?) добавляется в каждой из ситуаций, а что если вы не хотите, чтобы оно добавлялось? Тут нас спасает хук document_title_parts .
Хочется отметить, что хук довольно умный, если мы удаляем вторую часть, то и разделитель тоже исчезнет! Ну и конечно же вы можете не только удалять какие-то определённые части заголовков, но и изменять их:
Создание собственных правил формирования произвольных заголовков
А это уже место для творчества различных SEO-плагинов, а именно – хук pre_get_document_title . Он работает таким образом, что если возвращает что-либо, а не пустой результат, то функция дальше не выполняется и лишь возвращает результат из хука. Как-то так.
В качестве примера давайте попробуем использовать этот хук для того, чтобы получать заголовок поста из произвольных полей, если они заданы, если же нет, то выводим значение по умолчанию.
- Используйте is_singular(), если хотите, чтобы код срабатывал для записей, страниц и любых произвольных типов постов, is_single() – если вам это нужно только для записей, is_page() – только для страниц
- Можете также почитать и про функцию get_post_meta().
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!
Источник
the_title() WP 0.71
Выводит на экран заголовок записи. Принято использовать внутри цикла.
Особенностью является, то что заголовок для «личных» и «защищенных» постов будет помечен соответственно: «Защищен: » (Protected: ) и «Личное: » (Private: )
Возвращает
null|Строку . null когда результат выводится на экран ( $echo=true ). Строку, когда ( $echo=false ).
Использование
Примеры
#1. Выведем на экран заголовок записи в html теге H3:
#2. Вывод заголовка с текстом до него:
#3. Получим заголовок записи в переменную
Чтобы получить значение для обработки в PHP, укажите третий параметр $echo, как false или 0. Или используйте функцию get_the_title()
Список изменений
Код the_title() the title WP 5.8.1
Cвязанные функции
title (заголовок)
Записи: посты, страницы, .
Записи: посты, страницы, .
Добрый день, подскажите плиз как можно ограничить количество символов в заголовке? А то у меня на сайте заголовки длинные в анонсе и не очень красиво. Спасибо.
Вставляем такую функцию обрезки текста (заголовка) в functions.php:
В шаблоне юзаем такой код, где 80 — максимальная длинна:
Ух ты, оперативно! Сейчас попробую заюзать, спасибо.
Подскажите пожалуйста, хочу обрезать заголовок в цикле:
Т.е ваша функция
вызывает ошибку, что делать?
Какую ошибку то? Попробуйте такой код:
а можете подсказать, у меня в названии поста написано «Блабла: Название».
что надо вписать в функции, чтобы он убирал все виесте с двоеточием и пробелом.
ковырял функцию, но видать, ковырялки не хватает. соль еще в том, что там до двоеточия попадаются разное количество символов.
Вот такую функцию используйте вместо the_title()
Где нужен заголовок без начальных слов до двоеточия вызываешь так:
Спасибо за функцию обрезки текста (заголовка) Кстати, добавьте эту функцию в новую запись — больше людей увидят!
Спасибо большое, за функцию обрезки текста, очень помогло. clapping
Добрый день.
А можно как-то вставить перенос строки в заголовок поста?
Шорткодом, например, или еще как-то?
Проблема в том, что WP удаляет теги из заголовков((
Если в the_content есть html редактор, то как быть в the_title? Как вставить в заголовок? Спасибо!
Источник
Заголовок страницы тег Title для WordPress
Доброго времени суток. 🙂
Решил написать Вам статью о заголовке страницы. Думаю, эта информация понадобится начинающим веб-мастерам, которые занимаются созданием сайтов. Для некоторых «бывалых», возможно тоже найдется что-то интересное. Не будем тянуть, начнем!
Как Вам может быть известно, каждая страница сайта, в своей шапке, должна иметь тег Title. Этот тег задает заглавие страницы. Самый популярный вид Title примерно такой:
Если у Вас самописный HTML сайт в несколько страниц, то можно для каждой написать свой заголовок и все в порядке. Но если Вы используете систему управления, например WordPress, то там для всех страниц используется одна шапка, которая по умолчанию подключается файлом header.php. Часто веб-мастера вручную прописывают в этом файле тег Title и получается, что для всех страниц один заголовок. Таким образом Вы всем записям присвоите один заголовок. Поисковики проиндексируют страницы и по заголовкам самой статьи разберутся что и куда, но все же Title тоже не мало важен.
Так же Title отображается во вкладках браузера и если человек сохранит страницы вашего сайта в закладках, то они все будут иметь одно название и со временем разобрать на какой нужная информация, будет невозможно. Нужно будет только открывать каждую и смотреть.
Поэтому, я предлагаю для WordPress использовать дополнительные функции, которые помогут решить проблему с одинаковым заголовком. У WordPress есть стандартная функция, которая выводит заголовок для каждой страницы. это функция wp_title().
Чаще всего эту функцию используют вместе с функцией вывода заголовка блога. Как пример готовый код выглядит так
Результат будет примерно такого вида:
Заголовок блога | Заголовок страницы
То есть, если вы создаете сайты, то title получится примерно таким:
Создание сайтов | Правила верстки
Можно поменять местами заголовок блога и поста, так будет еще лучше и удобнее для посетителя. Код будет таким:
Как Вы заметили, в роли разделителя символ — |. Можете поменять, если Вам он не нравится, единственное что, не используйте _ и —, могут возникнуть ошибки.
Как дополнение к статье, хочу немного написать о правильности составления заголовков страниц. При индексации страниц сайта поисковики могут учитывать не всю длину заголовка. Дело в том, что Яндекс, берет только первые 15 слов или 70 символов без пробелов, все остальное обрезается. Google, в свою очередь берет только 12 слов или 70 символов, остальное воспринимает как обычный текст.
Из этого следует, что Вы должны правильно составить свои заголовки. Вот почему вначале лучше ставить заголовок страницы, а уже потом заглавие сайта. К тому же при написании статей, продумываете заголовки, не пишите очень длинные, потому как они полностью не попадут под индекс, а это не хорошо.
В общем, старайтесь делать короткие, понятные и правильные заголовки, чтобы придать еще больше качества Вашему сайту.
На этом все, спасибо за внимание. 🙂
Если Вам был полезным мой труд, можете финансово поддержать сайт или отключить блокировщик рекламы, что займет 2 минуты 🙂
Источник
wp_get_document_title() WP 4.4.0
Получает заголовок текущей страницы (документа), который принято выводить в html теге . Замена для устаревшей функции wp_title() .
В конце заголовка добавляется — название сайта . На главной странице вместо названия выводится — описание сайта . Главная страница определяется так: is_home() && is_front_page() . Для страниц пагинации в конце еще будет добавлен номер страницы: – Страница 2 .
Эта функция сработает в части HTML автоматически, если у темы включена поддержка title-tag :
В этом случае в будет добавлена такая конструкция:
Соответственно в этом случае вообще не нужно добавлять тег в , он будет добавлен автоматически. Добавит его функция _wp_render_title_tag(), которая сработает на хуке wp_head , который в свою очередь вызывается функцией wp_head().
Работу этой функции можно переопределить через хук pre_get_document_title:
Используйте фильтр document_title_parts , чтобы изменить любую часть заголовка выводимого этой функцией.
Хуки из функции
Возвращает
Строку . Заголовок текущей страницы.
Использование
Примеры
#1 Демонстрация работы
Допустим мы находимся на странице «Контакты»:
#2 Вывод TITLE заголовка страницы
Это замена для тега шаблона wp_title() . Используется в header.php для вывода заголовка любой страницы.
Это демонстрационный пример, на деле в WP этот код выполняется функцией _wp_render_title_tag(), которая в свою очередь зацеплена на хук wp_head . Т.е. код выполняется в HEAD части HTML и чтобы его включить, нужно включить поддержку темы title-tag.
#3 Выведем свой заголовок, используя фильтр
Допустим нам нужно чтобы эта функцию вообще не работала и через нее мы хотим вывести свой заголовок, например «Моя страница», на странице с ID 20:
#3.1 Переопределяем функцию
Можно написать свою функцию и полностью заменить работу этой функции:
#4 Изменим разделитель между заголовком и названием сайта
По умолчанию функция добавляет в после заголовка название сайта через разделитель: ‘ — ‘. Разделитель можно изменить через фильтр:
#5 Удалим названия сайта в конце заголовка
Ко всем заголовкам на отдельных страницах is_singular() добавляется название сайта, через разделитель. Это не всегда хорошо, давайте поправим этот момент. Для этого используем фильтр: document_title_parts:
#6 Удалим описания сайта из заголовка главной страницы
На главной странице выводиться «Название сайта — описание сайта». Чтобы удалить описание и выводить только называние, используйте такой хук:
Заметки
- Global. int. $page Page number of a single post.
- Global. int. $paged Page number of a list of posts.
Список изменений
Код wp_get_document_title() wp get document title WP 5.8.1
Cвязанные функции
title (заголовок)
Другие функции темы
а чем wp_title() не угодил? по-моему полный аналог. Кама, просветитель меня)
Во-первых. Само название wp_title() неопределенное. Подходит для любого заголовка: сайта, записи, документа и т.д. А с wp_get_document_title() сразу ясно о чем речь.
Во-вторых. Для гибкости и возможности подключаться через плагины, в частности для SEO, просто необходимо использовать хуки (у каждого сайта свои нужды), а wp_title прописывается жестко в html и плагинам приходилось костылями переделывать сам тег в html, а не использовать хуки. Это идет в разрез с общей схемой использования хуков. Кроме того, так сложилось, что обычно заголовок прописывался так:
тут даже если через хук изменить заголовок wp_title() , то он полностью не поменяется.
Далее, разных, уже неправильных, мануалов по wp_title() в сети много. И легче сделать все по-новому, чем объяснить что: были изменения и теперь надо использовать так, а не так. Чтобы от этого отвязаться нужно в корне изменить принцип,тогда уже не будет никакой связи с неправильными мануалами.
Далее, хук wp_title срабатывает в конце функции, т.е. сначала все операции, а потом хук. И там обычно просто полностью переопределяется работа функции. Это неправильно.
В итоге получается, что wp_get_document_title() это тоже самое, но с новым подходом. Он вешается через хук wp_head и не используется напрямую в html. Функция сама по себе нигде не вызывается, а изменяться через хуки: можно на начальном этапе все поменять (‘pre_get_document_title’) или в конце дополнить (‘document_title_parts’).
Источник