На сайте Wordpress, над которым я работаю, он публикует сообщения по категориям, но я также просматриваю страницу, в которой перечислены ВСЕ записи (с разбивкой на страницы, показывающие 10 на странице). Как я могу добиться этого?
Спасибо
На сайте Wordpress, над которым я работаю, он публикует сообщения по категориям, но я также просматриваю страницу, в которой перечислены ВСЕ записи (с разбивкой на страницы, показывающие 10 на странице). Как я могу добиться этого?
Спасибо
Вы можете создать новый шаблон страницы с этим циклом в нем:
<?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( '← Older posts', $wp_query ->max_num_pages); ?>
<?php previous_posts_link( 'Newer posts →' ); ?>
Для других, которые могут быть Googling this... Если вы заменили главную страницу своего сайта на статическую страницу, но все же хотите, чтобы ваш список сообщений отображался под отдельной ссылкой, вам необходимо:
Теперь, когда вы нажимаете ссылку на эту страницу в своем меню, она должна отображать все ваши недавние сообщения (не возиться с нужным кодом).
Немного более привлекательное решение, основанное на ответе @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>