Создание страницы "Все записи" или "Архив" в WordPress 3.0

31 авг. 2010 г., 18:36:12
Просмотры: 19.8K
Голосов: 3

Я хочу создать страницу "Все записи" в блоге Ocean Bytes, которая будет содержать неупорядоченный список всех заголовков постов на текущий момент, где каждый заголовок будет гиперссылкой на соответствующую запись блога.

Существует несколько плагинов, которые делают что-то подобное, но большинство из них еще не поддерживают WordPress 3.0+, либо они хотят группировать записи блога по годам и месяцам, что не соответствует желаемому результату.

Есть ли предложения по "лучшему способу" решения?

Спасибо.

0
Все ответы на вопрос 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(), чтобы узнать больше о том, как изменить запрос.

31 авг. 2010 г. 19:19:38
1

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

Вот несколько хороших руководств по созданию пользовательских шаблонов страниц:

31 авг. 2010 г. 19:20:04
Комментарии

Спасибо за ссылки, которые привели меня к решению, которое я в итоге нашел ниже. Я бы поставил плюс этому ответу, но, видимо, у меня еще недостаточно кармы на SE ;?)

cpuguru cpuguru
1 сент. 2010 г. 15:33:03
1

В итоге я создал шаблон страницы под названием "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

1 сент. 2010 г. 04:24:27
Комментарии

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

cpuguru cpuguru
16 окт. 2015 г. 21:53:17