Размещение заголовка страницы в хедере?
Обычно в WordPress заголовок страницы отображается в области контента. Я хочу, чтобы заголовок страницы появлялся в области хедера. Похоже, для этого нужно удалить его из текущего местоположения в content-page.php и поместить в header.php. Но content-page.php вызывается из page.php, который вызывает content-page из цикла while (while ( have_posts() ) : the_post(); ...
) -- поэтому мне, вероятно, придется также переместить или скопировать это в хедер. Кажется слишком сложным.
Может быть, имеет больше смысла переместить часть HTML хедера в контент страницы, чтобы не запускать цикл while более одного раза?
(В качестве учебного инструмента я воссоздаю существующий HTML-сайт с помощью WordPress, используя стартовую тему _s.)
--- РЕДАКТИРОВАТЬ ---
Спасибо за ответы. Очень полезно. Вот результаты некоторых тестов, основанных на ваших ответах. Учитывая следующий код в хедере (вне цикла):
wp_title(): <?php wp_title('', true,''); ?><br>
the_title(): <?php the_title(); ?><br>
single_post_title(): <?php single_post_title(); ?><br>
$post->post_name: <?php echo 'имя страницы: ' . $post->post_name; ?><br>
ispage? : <?php echo (is_page() ? 'да' : 'нет'); ?><br>
ispage(about-us) : <?php echo (is_page('about-us') ? 'да' : 'нет'); ?><br>
ispage(About Us) : <?php echo (is_page('About Us') ? 'да' : 'нет'); ?>
При просмотре страницы "О нас" я получаю:
wp_title() О насВ Скинии
the_title(): О нас
single_post_title(): О нас
$post->post_name: имя страницы: about-us
ispage? : да
ispage(about-us) : да
ispage(About Us) : да
При просмотре Главной страницы я получаю:
wp_title(): В Скинии Мой девиз сайта
the_title(): Главная
single_post_title(): Главная
$post->post_name: имя страницы: home
ispage? : да
ispage(about-us) : нет
ispage(About Us) : нет
А при просмотре записи "Привет, мир!" я получаю:
wp_title(): Привет, мир!В Скинии
the_title(): Привет, мир!
single_post_title(): Привет, мир!
$post->post_name: имя страницы: hello-world
ispage? : нет
ispage(about-us) : нет
ispage(About Us) : нет
Вывод: я могу использовать the_title() или single_post_title() (wp_title возвращает больше текста, чем мне нужно). И я могу проверять is_page(...), чтобы отображать конкретное название страницы при просмотре записи.
Спасибо!

Если вам нужен только заголовок, вы можете легко запросить его вне цикла.
Попробуйте вызвать the_title()
в вашем хедере. Это должно сработать
Но вы должны учитывать, что если не поставить условие, каждая страница вашего сайта будет отображать свой заголовок в разделе хедера.
РЕДАКТИРОВАНО: функция для вызова - get_the_title($post->ID)
, так как the_title()
не позволяет указать ID записи в качестве аргумента. Вы можете проверить в Wordpress Codex функции, которые позволяют запрашивать информацию о вашей записи вне цикла.

the_title предназначена для использования только внутри цикла. Чтобы получить заголовок записи вне цикла, используйте get_the_title( $post->ID )

На самом деле, я перепроверил, и the_title()
действительно работает вне цикла. В случае архивных шаблонов она выводит заголовок первой статьи. В случае single.php
и page.php
она выводит заголовок страницы. Может быть полезно в некоторых случаях, но не рекомендуется документацией.

Вам необходимо использовать функцию wp_title();
Если вы пытаетесь использовать заголовок записи следующим образом:
<head>
<title> заголовок записи здесь </title>
</head>
Вам нужно добавить wp_title(' ', true , ' ');
<head>
<title> <?php wp_title('', true,''); ?> </title>
</head>
Например: Если название вашей записи было "Привет, мир", то "Привет, мир" теперь будет отображаться во вкладке браузера.

Вопросы, основанные только на ссылках, не являются хорошими. Пожалуйста, объясните, что нужно делать и почему это отвечает на вопрос. И, если возможно, приведите пример.

Хотя вышеупомянутые методы работают на данный момент, разработчики ядра WordPress рекомендуют следующее:
Начиная с версии 4.1 и темы Twenty Fifteen, рекомендуемый способ для тем отображать заголовки — это добавление поддержки темы следующим образом: -Константин Обенланд
Вы можете добавить эту строку в файл functions.php вашей темы после after_setup_theme. или
с той же страницы,
Начиная с версии 4.1 и темы Twenty Fifteen, рекомендуемый способ для тем отображать заголовки — это добавление поддержки темы следующим образом:
function theme_slug_setup() { add_theme_support( 'title-tag' ); } add_action( 'after_setup_theme', 'theme_slug_setup' );
Поддержка должна быть добавлена на хуке after_setup_theme или init, но не позднее. Она не принимает никаких дополнительных аргументов.
Что это делает: позволяет WordPress выбирать заголовок страницы в шапке, без использования жестко заданных тегов <title> в файле header.php.
Ваш заголовок будет отображаться в следующем формате.
Заголовок страницы - Название сайта
