Как отобразить заголовок/содержимое страницы на странице записей?

25 янв. 2011 г., 11:23:51
Просмотры: 29.5K
Голосов: 5

Я создал файл home.php и назвал его Blog.

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

Например:

Страница записей:

    Заголовок страницы
    (Возможно содержимое страницы)

    == Записи ==

    Заголовок записи
    Содержимое записи

Заголовок записи и так далее
2
Комментарии

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

Rarst Rarst
25 янв. 2011 г. 11:37:02

Пожалуйста, уточните, как сказал Rarst: вы используете нативный файл шаблона (просто файл, который помещаете в папку темы) или именованный шаблон страницы (файл, который прикрепляете к странице)? Обратите внимание: это не может быть одновременно и тем, и другим (это не будет работать корректно, как также отметил Rarst).

t31os t31os
25 янв. 2011 г. 12:59:43
Все ответы на вопрос 2
0
12

Я предполагаю следующее:

  1. Вы используете статическую главную страницу
  2. У вас есть отдельная статическая страница, назначенная для отображения архива записей блога
  3. Вы создали файл шаблона home.php в своей теме
  4. Статическая страница, назначенная для отображения записей блога, имеет заголовок Блог
  5. Вы добавили некоторый контент на эту статическую страницу

Из-за особого, зарезервированного характера home.php, а также page_for_posts, вы не можете использовать обычные методы для доступа к объекту $post для статической страницы Блог. Однако вы можете получить заголовок и контент этой страницы. Ключевым моментом является обращение к ID записи через get_option( 'page_for_posts' ).

Заголовок страницы

Используйте get_the_title():

echo apply_filters( 'the_title', get_the_title( get_option( 'page_for_posts' ) ) );

Контент страницы

Используйте get_post_field():

echo apply_filters( 'the_content', get_post_field( 'post_content', get_option( 'page_for_posts' ) ) );

В обоих случаях оберните вывод в вызов apply_filters(), чтобы заголовок и контент страницы отображались так же, как обычно. В противном случае данные, возвращаемые через get_the_title() и get_post_field(), будут лишены обычного форматирования, которое WordPress применяет через the_title() и the_content() соответственно.

4 июн. 2012 г. 17:01:11
1

насколько я понимаю, вам нужно single_post_title()

6 нояб. 2011 г. 17:46:01
Комментарии

Это правильный ответ.

kjdion84 kjdion84
25 янв. 2017 г. 08:10:49