WordPress по умолчанию выводит на главную страницу последние записи, и большое количество блогов и информационных сайтов на основе этой CMS это использует. Однако второй возможностью WP является назначение любой статической страницы в качестве главной. Этим тоже часто пользуются, особенно, если тема позволяет настроить именно такую страницу в Настройщике тем (Customizer). В этом случае для вывода последних записей используют другую статическую страницу, давая ей обычно название "Блог" или "Статьи".
Вы можете указать соответствующие страницы в меню консоли WP Настройки -> Чтение:
Что же делать, если необходимо вывести заголовок страницы блога в вашей теме? По умолчанию этого не произойдет, поэтому придется приложить ряд усилий.
Первой мыслью является использование стандартной функции WP get_the_title()
или the_title()
, но парадокс такого подхода заключается в том, что в этом случае вы получите заголовок не самой страницы, а последнего поста, который выводится с помощью цикла WordPress.
Заголовок страницы записей
Самый простой способ - записать заголовок в переменную, воспользовавшись функцией get_option(), которая имеет ряд значений для стандартных страниц.
1 | $post_page_title = get_the_title( get_option('page_for_posts', true) ); |
Затем вы можете использовать эту переменную в своем коде:
1 | <h1 class="page-title"><?php echo $post_page_title ?></h1> |
Этот вариант отлично подходит, если вы создадите для страницы записей отдельный шаблон в своей теме. Что же делать, если нужно вписать это в один из файлов темы WordPress?
Отслеживание страницы записей в стандартном файле темы WordPress
Обычно за вывод страниц отвечают такие файлы, как index.php
и archive.php
. Заголовок может быть вынесен в header.php
. Если фалы вашей темы разбиты на части и выводятся с помощью функции get_template_part( 'template-parts/content', get_post_type() )
, то нужный файл может находится в папке template-parts.
Мы воспользуемся глобальной переменной WP $pagename
, чтобы иметь доступ к слагу (slug) нашей страницы записей. Эта переменная определяется в файле wp-includes/theme.php
внутри функции get_page_template()
, которая будет доступна в любой точке внутри шаблонов страниц.
В файле, отвечающем за вывод последних записей, мы можем разместить такого плана код:
1 2 3 4 5 6 7 8 9 10 | <?php $blog_id = get_option('page_for_posts', true); $blog_page_name = get_post($blog_id) -> post_name; if($blog_page_name == $pagename) : $post_title = get_the_title( $blog_id); echo '<h1 class="header-title" data-text="'.$post_title.'">'.$post_title.'</h1>'; elseif(is_page()): the_title( '<h1 class="header-title" data-text="'.get_the_title().'">', '</h1>' ); endif; ?> |
В результате у нас будет страница записей, которая выводится с заголовком, подобным всем остальным страницам:
Теперь вы можете вывести заголовок страницы записей в любом из файлов темы WP.
Ссылка на блог
В том случае, если вам необходимо вывести ссылку на новости с помощью функций, особенно, если сайт использует какие-либо плагины для многоязычности, например, Polylang, можно использовать следующий код:
1 2 3 4 | <?php $blog_id = get_option('page_for_posts', true); ?> <p class="text-center"><a href="<?php echo get_permalink($blog_id); ?>" class="btn btn-primary">Все новости</a></p> |