Отображение записей блога на любой странице (с навигацией)

Опубликовано: 01.09.2018

видео Отображение записей блога на любой странице (с навигацией)

5 Вывод записей на главной странице

По умолчанию последние записи в WordPress отображаются на главной странице, а более старые записи доступны через навигацию по записям на страницах /page/2/ , /page/3/ и так далее. В этой статье мы расскажем, как отображать ваши записи на любой статической странице, используя пользовательский цикл WP_Query , который отлично работает с навигацией по записям.



Например, если вы отображаете статическую страницу в качестве главной страницы (как указано в Настройках чтения ), вы можете захотеть показывать список записей отдельно, например на отдельной странице " blog ". К этому пришел я, когда делал свой блог xy.css , при этом используя статичную (без записей блога) главную страницу. Мне нравится такой подход, поскольку навигация по записям в таком виде работает интуитивно, например, так:


Произвольные типы записей. Серия №2. Вывод на странице записей

http://xycss.com/blog/ — отображает последний записи в блоге http://xycss.com/blog/page/2/ — отображает вторую страницу записей http://xycss.com/blog/page/3/ — отображает третью страницу записей

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


Исключаем записи с главной страницы Wordpress

Шаг 1. Шаблон страницы

Создайте пустой шаблон страницы, назовите его page-blog.php и добавьте туда следующий код:

<?php /* Template Name: Blog */ ?> <?php get_header(); ?> <article> <?php // Display blog posts on any page @ http://m0n.co/l $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query(); $wp_query->query('showposts=5' . '&paged='.$paged); while ($wp_query->have_posts()) : $wp_query->the_post(); ?> <h2><a href="<?php the_permalink(); ?>" title="Read more"><?php the_title(); ?></a></h2> <?php the_excerpt(); ?> <?php endwhile; ?> <?php if ($paged > 1) { ?> <nav id="nav-posts"> <div class="prev"><?php next_posts_link('&laquo; Previous Posts'); ?></div> <div class="next"><?php previous_posts_link('Newer Posts &raquo;'); ?></div> </nav> <?php } else { ?> <nav id="nav-posts"> <div class="prev"><?php next_posts_link('&laquo; Previous Posts'); ?></div> </nav> <?php } ?> <?php wp_reset_postdata(); ?> </article> <?php get_footer(); ?>

Собственно, все. Теперь просто подключите его и напичкайте своими собственными параметрами для WP_Query — и готово. Например, вместо того, чтобы отображать 5 записей, вы можете установить showposts=10 или столько, сколько вам будет угодно.

Обратите внимание, что навигация по постам содержит условия, чтобы на первой странице записей (то есть, на вашей странице /blog/ ) не отображалась пустая разметка/стили для ссылки " Следующие записи ". Здесь вы можете узнать больше об оптимизации навигации по записям WordPress.

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

Шаг 2. Добавление новой страницы

Как только вы закончили и загрузили на сайт файл page-blog.php , зайдите в консоль администратора и перейдите на страницу добавления новой страницы. Там создайте новую странице под названием " Blog " (или как вам захочется), установите ее шаблон как " Blog " из панели " Атрибуты страницы ".

Готово! Теперь перейдите на страницу блога и вы увидите, как ваш цикл WP_Query работает: последние записи в блоге будут отображены на странице, как и навигация по предыдущим записям, если они существуют, конечно.

Заключение

В WordPress можно с легкостью отображать записи вашего блога где угодно. В этой статье мы рассказали о том, как отобразить записи на любой станице, используя свой цикл WP_Query, который поддерживает навигацию. Это может быть очень полезным при настройке WordPress как отдельной пользовательской CMS.

Источник:
rss