Создание страницы "Все записи" или "Архив" в WordPress 3.0
Я хочу создать страницу "Все записи" в блоге Ocean Bytes, которая будет содержать неупорядоченный список всех заголовков постов на текущий момент, где каждый заголовок будет гиперссылкой на соответствующую запись блога.
Существует несколько плагинов, которые делают что-то подобное, но большинство из них еще не поддерживают WordPress 3.0+, либо они хотят группировать записи блога по годам и месяцам, что не соответствует желаемому результату.
Есть ли предложения по "лучшему способу" решения?
Спасибо.
Создайте новый файл шаблона и реализуйте цикл следующим образом:
query_posts( array( 'posts_per_page' => -1, 'post_status' => 'publish' ) );
if( have_posts() ):
echo '<ul>';
while( have_posts() ):
the_post();
echo '<li><a href="';
the_permalink();
echo '">';
the_title();
echo '</a></li>';
endwhile;
echo '</ul>';
endif;
wp_reset_query();
Затем просто используйте этот шаблон для страницы, и он автоматически сгенерирует контент. Ознакомьтесь с документацией codex для функции query_posts()
, чтобы узнать больше о том, как изменить запрос.

"Лучший способ" - это использование пользовательского шаблона страницы. Так же как index.php
проходит циклом по всем записям, вы можете выполнить пользовательский запрос для перебора всех элементов и выводить только нужную информацию (заголовок, URL) в браузер.
Вот несколько хороших руководств по созданию пользовательских шаблонов страниц:

В итоге я создал шаблон страницы под названием "allposts-page.php" в папке темы Twenty-Ten со следующим кодом:
<?php
/**
* Шаблон: Все записи
*
* Пользовательский шаблон страницы для отображения всех записей.
*
* Указание "Шаблон:" выше позволяет выбирать этот шаблон
* из выпадающего меню на экране редактирования страницы.
*
* @package WordPress
* @subpackage Twenty_Ten
* @since Twenty Ten 1.0
*/
get_header(); ?>
<div id="container">
<div id="content" role="main">
<h2>Архив всех записей:</h2>
<ul>
<?php wp_get_archives('type=postbypost'); ?>
</ul>
</div><!-- #content -->
</div><!-- #container -->
<?php get_footer(); ?>
Затем я создал новую страницу через админку WordPress с заголовком "Все записи" и выбрал шаблон "Все записи" из выпадающего списка. Не нужно было вводить что-либо в тело страницы.
Получившуюся страницу можно найти по адресу:
www.oceanbytes.org/all-posts/
По умолчанию "wp_get_archives" использует тип "monthly" (по месяцам), но я выбрал "postbypost", так как хотел просто вывести все записи одним длинным списком. Больше опций можно найти на сайте WordPress в разделе Справочник функций/wp get archives

Примечание: Хотя вышеописанный метод работал с предыдущим самописным сайтом на WP 3.0, у меня нет доступа к созданию шаблонов страниц на теперь внешне размещённом сайте WP 4.x из-за ограничений хостинга. Поэтому результирующая страница, указанная выше, не выполняет приведённый PHP-код.
