Меню

WordPress как вывести заголовок страницы

wp_title() WP 1.5.0

Выводит/возвращает заголовок страницы.

Функция считается устаревшей с версии 4.4.

Вместо неё следует использовать поддержку темы ‘title-tag’:

В основе работы ‘title-tag’ лежит функция wp_get_document_title().

В функции можно указать разделитель между названием страницы и дополнительными словами в заголовке. С версии 2.5, можно указать, с какой стороны заголовка разделитель должен находиться (справа, слева).

Этот Тег шаблона можно использовать повсеместно, как за пределами Цикла WordPress, так и внутри него. Обычно его используют для указания заголовка страницы в теге в части страницы.

Хуки из функции

Возвращает

Строку|null . Строку при получении, null – при отображении.

Использование

Примеры

#1 Выведем заголовок блога

Выведем название блога (используя bloginfo()) и заголовок страницы (предположим, что мы находимся на странице поста).

Получим: Заголовок блога » Название поста

#1.2. Если нужно убрать разделитель, то вызываем функцию так:

#2 Отдельный заголовок для главной страницы

Если для главной страницы мы используем произвольный шаблон, с произвольный выводом (Циклом WordPress), то заголовок страницы может определяться не так как нам бы хотелось. Чтобы избежать этого используйте такой код:

#3 Использование разделителей

Выведем название блога затем заголовок страницы и в качестве разделителя установим знак » | «.

Получим: Заголовок блога | Заголовок страницы

Важно! Не используйте в качестве разделителя знаки » _ » и » — «. Это может вызвать ошибки.

#4 Поменяем местами заголовки

Если нужно отобразить сначала заголовок страницы, а затем название блога используйте такой код:

Источник

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’).

Источник

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? Как вставить в заголовок? Спасибо!

Источник