2017-01-03 3 views
2

У меня есть функция, которая получает сообщение в выбранной категории, кажется, работает, за исключением последнего сообщения.Получить запрос по выбранной категории в WordPress

Последнее сообщение не будет отображаться, оно отображается только после публикации нового сообщения, тогда предыдущее покажет ...?

<?php 
global $post; 
global $categoryName; //access it through a global variable. 
$myposts = get_posts(array(
    'posts_per_page' => 5, 
    'offset' => 1, 
    'category' => 3 // set cat here 
)); 
echo '<div class="recent-post">'; 
if ($myposts) { 
    foreach ($myposts as $post) : 
     setup_postdata($post); 
     ?> 

     <a class="col-xs-3 col-md-2" href="<?php the_permalink(); ?>"> 
      <?php the_post_thumbnail('thumbnail'); ?> 
     </a> 
     <div class="col-xs-3 col-md-10"> 
      <a class="" href="<?php the_permalink(); ?>"> 
       <h2><?php the_title(); ?></h2> 
      </a> 
      <?php the_excerpt() ?> 
      <a href="<?php the_permalink(); ?>">Read Full</a> 
      <br> 
      <a class="" href="<?php comments_link(); ?>"> 
       <?php comments_number('0 Comments', '1 Comments', '% Comments'); ?>. 
      </a> 
     </div> 
     <hr/> 

     <?php 
    endforeach; 
    wp_reset_postdata(); 
} 
echo '</div>'; 
?> 

еще лучше, у меня есть функция, которая чиста, если эта функция может быть изменена, чтобы включать mypost массив и он установлен, если 'category' параметра является нулевым или опорожнить показать все.

<div class="recent-post"> 
<?php $popular = new WP_Query('orderby=comment_count&posts_per_page=5'); 
while ($popular->have_posts()) : $popular->the_post(); ?> 
    <a href="<?php the_permalink(); ?>"> 
     <?php the_post_thumbnail('thumbnail'); ?> 
    </a> 

    <a href="<?php the_permalink(); ?>"> 
     <?php the_title(); ?> 
    </a> 

    <br> 
    <a href="<?php comments_link(); ?>"> 
     <?php comments_number('0 Comments', '1 Comments', '% Comments'); ?>. 
    </a> 

    <?php the_excerpt() ?> 
    <a href="<?php the_permalink(); ?>">Read More</a> 
    <hr/> 
<?php endwhile; ?> 
</div> 

ответ

1

Вы передаете offset к вашему get_posts вызова.

Следовательно, вы являетесь offsetting своим результатом по одному и пропустите последнее сообщение.

Удалите смещение, и все будет хорошо.

+0

Просто фик его 1 мин до вашего поста, спасибо –

1

Простейшие получить по категориям может быть, как это

$type = $myseriesoption; 
$args=array( 'post_type' => $type, 'post_status' => 'publish', 'posts_per_page' => 5, 'caller_get_posts'=> 1); 
$my_query = null; 
$my_query = new WP_Query($args); 
if($my_query->have_posts()) { 
while ($my_query->have_posts()) : $my_query->the_post(); 
// your code 
} 
else 
{ 
$attachments = get_posts(array(
    'post_type'  => 'attachment', 
    'posts_per_page' => 500, 
    'post_status' => 'any', 
    'post_parent' => null 
)); 

if ($attachments) { 
    foreach ($attachments as $post) { 
     setup_postdata($post); 
     the_title(); 
     the_attachment_link($post->ID, false); 
     the_excerpt(); 
    } 
    wp_reset_postdata(); 
} 
} 
wp_reset_query(); 

вы можете увеличить или параметры уменьшаются в соответствии с вашими требованиями

Смежные вопросы