Wordpress - список всех сообщений (с правильной_пагонацией) - PullRequest
22 голосов
/ 25 января 2011

На сайте Wordpress, над которым я работаю, он перечисляет посты по категориям, но я также после страницы, которая перечисляет ВСЕ посты (с нумерацией страниц, показывая 10 на страницу). Как мне добиться этого?

Спасибо

Ответы [ 3 ]

48 голосов
/ 25 января 2011

Вы можете создать новый шаблон страницы с таким циклом:

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array( 'post_type' => 'post', 'posts_per_page' => 10, 'paged' => $paged );
$wp_query = new WP_Query($args);
while ( have_posts() ) : the_post(); ?>
    <h2><?php the_title() ?></h2>
<?php endwhile; ?>

<!-- then the pagination links -->
<?php next_posts_link( '&larr; Older posts', $wp_query ->max_num_pages); ?>
<?php previous_posts_link( 'Newer posts &rarr;' ); ?>
15 голосов
/ 13 марта 2014

Для тех, кто может гуглить это ... Если вы заменили первую страницу своего сайта страницей static , но по-прежнему хотите, чтобы ваш список сообщений отображался под отдельной ссылкой, вам нужно чтобы:

  1. Создать пустую страницу (и указать любой URL / слаг, который вам нравится)
  2. В разделе Настройки> Чтение выберите эту новую страницу в качестве своей "Страницы сообщений"

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

2 голосов
/ 27 февраля 2014

Чуть более причудливое решение на основе ответа @Gavins

<?php
/*
Template Name: List-all-chronological
*/

function TrimStringIfToLong($s) {
    $maxLength = 60;

    if (strlen($s) > $maxLength) {
        echo substr($s, 0, $maxLength - 5) . ' ...';
    } else {
        echo $s;
    }
}

?>

<ul>
<?php
$query = array( 'posts_per_page' => -1, 'order' => 'ASC' );
$wp_query = new WP_Query($query);

if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li>
    <a href="<?php the_permalink() ?>" title="Link to <?php the_title_attribute() ?>">
        <?php the_time( 'Y-m-d' ) ?> 
        <?php TrimStringIfToLong(get_the_title()); ?>
    </a>
</li>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts published so far.'); ?></p>
<?php endif; ?>
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...