Подтвердить что ты не робот

Wordpress - Список всех сообщений (с правильной_очередкой)

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

Спасибо

4b9b3361

Ответ 1

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

<?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;' ); ?>

Ответ 2

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

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

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

Ответ 3

Немного более привлекательное решение, основанное на ответе @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>