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

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

Вы вероятно уже знаете, что пользователь может изменить страницы, которые используются для главной страницы и страницы записей (она же страница блога) в “Настройках” -> “Чтение” в панели управления.

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

Это добавит ясности для моих пользователей и сделает все мои страницы максимально целостными. Например, может случится так, что я буду использовать страницу записей для отображения новостей и захочу назвать эту страницу “Новости”.

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

У WordPress есть функция the_title(), она отлично срабатывает внутри цикла WordPress. Проблема в том, что, если вы используете эту функцию для всех ваших записей в блоге внутри цикла, и попытаетесь вернуть заголовок страницы за его пределами, ничего хорошего не выйдет.

Все, что вы получите в итоге, это — только заголовок для первой записи на странице.

И так, как же  вывести заголовок страницы для страницы записей в WordPress?

Есть два способа сделать это. Первый — самый простой:

single_post_title();

Единственная проблема, с которой вы можете столкнуться, используя этот метод, это то, что функция возвращает заголовок моментально. Если вам захочется по какой-либо причине записать в переменную заголовок, вам придется использовать буферизацию вывода.

Также вы сможете воспользоваться функцией get_the_title(), чтобы записать заголовок в переменную, в качестве параметра нужно передать id поста. Если id поста не будет передан, то функция попытается использовать id текущей страницы.

К сожалению, в нашем случае это функция не сможет определить id текущей страницы правильно и это есть та самая причина, по которой мы не смогли воспользоваться функцией the_title() раньше: функция the_title() — это функция-обёртка для функции get_the_title().

К счастью, WordPress хранит id страницы, которую вы хотите использовать как страницу записей в базе данных. Поэтому, мы можем задать параметр таким способом:

$our_title = get_the_title( get_option('page_for_posts', true) );

И даже несмотря на то, что этой информации может быть для вас предостаточно, по крайней мере теперь вы знаете, как получить заголовок для страницы блога.

comments powered by HyperComments