2015-11-17 5 views
0

Я хочу создать страницу блога с недавними сообщениями и разбиением на страницы. Код ниже показывает последние сообщения, но разбиение на страницы не хочет работать.Wordpress limit posts per page with pagination

<?php get_header(); ?> 
<div class="container clearfix"> 
<div id="content" class="clearfix"> 
<?php 
    $postslist = get_posts('numberposts=-1&posts_per_page=5&order=DESC&orderby=date'); 
     foreach ($postslist as $post) : 
      setup_postdata($post); 
?> 
<div class="entry"> 
    <div class="recent-post-thumbnail"> 
     <?php echo the_post_thumbnail($recent->ID, 'thumbnail'); ?> 
    </div> 
    <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 
    <?php the_excerpt(); ?> 
    <h4><a href="<?php the_permalink(); ?>">More ></a></h4> 
</div> 
<?php endforeach; ?> 
</div> <!-- end content --> 
<div class="kreska-pion"></div> 
<div class="sidebar"> 
    <?php get_sidebar(); ?> 
</div> 
</div> 
<?php get_footer(); ?> 

ответ

2

numberposts=6 заменить это post_per_page и дайте мне знать, если он работал.

<?php 
    $postlist = get_posts('numberposts=-1&posts_per_page=5'); 
    $posts = array(); 
    foreach ($postlist as $post) { 
     $posts[] += $post->ID; 
    } 

    $current = array_search(get_the_ID(), $posts); 
    $prevID = $posts[$current-1]; 
    $nextID = $posts[$current+1]; 
    ?> 
    <?php 
    foreach ($posts as $post) : setup_postdata($post); ?> 
     <li> 
      <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> 
     </li> 
    <?php endforeach; 
    wp_reset_postdata();?> 
    <div class="navigation"> 
    <?php if (!empty($prevID)): ?> 
    <div class="alignleft"> 
    <a href="<?php echo get_permalink($prevID); ?>" 
     title="<?php echo get_the_title($prevID); ?>">Previous</a> 
    </div> 
    <?php endif; 
    if (!empty($nextID)): ?> 
    <div class="alignright"> 
    <a href="<?php echo get_permalink($nextID); ?>" 
    title="<?php echo get_the_title($nextID); ?>">Next</a> 
    </div> 
    <?php endif; ?> 
    </div><!-- .navigation --> 
+0

Теперь эта строка выглядит так: $ postlist = get_posts ('post_per_page = 6 & order = DESC & orderby = date'); Но показывает только 5 сообщений, и есть еще одна страница сообщений. Я что-то пропустил в function.php? Или что с этим не так? Спасибо, Prafulla, за помощь, я считаю, что он скоро начнет работать :) – joryl

+0

var_dump ($ postlist); с 'get_posts ('post_per_page' = -1)' и вывести результат. –

+0

Это показывает 'NULL' – joryl

1

Я попытался

<?php get_header(); ?> 
<div class="container clearfix"> 
    <div id="content" class="clearfix"> 
<?php 
     $args = array('post_per_page' = -1); 

     $query= new WP_Query($args); 
     var_dump($query); 
     // The 2nd Loop 
     while ($query->have_posts()) { 
      $query->the_post(); 
      echo '<li>' . get_the_title($query->post->ID) . '</li>'; 
     } 

     // Restore original Post Data 
     wp_reset_postdata();   
    ?> 
<div class="vertical"></div> 
    <div class="sidebar"> 
    <?php get_sidebar(); ?> 
    </div> 
</div> 
<?php wp_pagenavi(); ?> 
<?php get_footer(); ?> 

Но это показывает пустую страницу.

EDIT: Вот что я сделал:

<?php get_header(); ?> 
<div class="container clearfix"> 
<div id="content" class="clearfix"> 
<?php 
$args = array('post_per_page' = -1); 
$query= new WP_Query($args); 
var_dump($query); 
wp_reset_postdata(); 
?> 
<div class="vertical"></div> 
<div class="sidebar"> 
<?php get_sidebar(); ?></div> 
</div> 
<?php wp_pagenavi(); ?> 
<?php get_footer(); ?> 

И это показывает пустую страницу.

+0

использовать только '$ args = array ('post_per_page' = -1); $ query = new WP_Query ($ args); var_dump ($ query); ' –

+0

Я не уверен, что это то, что вы имеете в виду, но оно по-прежнему показывает пустую страницу. – joryl

+0

Вы не можете редактировать сообщение? добавив ваши данные в качестве ответа? –