2015-10-21 4 views
0

Так что я пытаюсь вытащить только последний липкий пост из WordPress и только 1. Я использую 'showpost = 1', но по какой-то причине, если у меня есть два сообщения, помеченные как липкие, оба появляются ?Запрос только последнего липкого сообщения

  <h2>Breaking News</h2> 
    <?php 
       query_posts('posts_per_page=1'); 
       if (have_posts()) { 
        while (have_posts()) : the_post(); 
        if (is_sticky()) : ?> 
    <div class="small-12 medium-6 large-4 columns"> 
     <div class="img-holder"> 
      <?php 
if (has_post_thumbnail()) { // check if the post has a Post Thumbnail assigned to it. 
    the_post_thumbnail('sticky-hp-thumbnails'); 
} 
?> 
      <?php if(get_field('sticky_sub_heading')): ?> 
      <div class="tag"> 
       <p> 
        <?php the_field('sticky_sub_heading'); ?> 
       </p> 
      </div> 
      <?php endif; ?> 
     </div> 
    </div> 
    <div class="small-12 medium-6 large-4 columns"> 
     <h3><a href"<?php the_permalink() ?>"> 
      <?php the_title(); ?> 
      </a></h3> 
     <?php if(get_field('sticky_date')): ?> 
     <p class="sticky-date"> 
      <?php the_field('sticky_date'); ?> 
     </p> 
     <?php endif; ?> 
     <p> 
      <?php the_field('sticky_summary'); ?> 
     </p> 
     <a href="<?php the_permalink() ?>" class="button">Read More</a> </div> 
    <?php endif; 
    endwhile; 
} 
wp_reset_query(); 
?> 

В каком случае я ошибаюсь в приведенном выше коде?

ответ

5

Использование posts_per_page вместо "showposts"

т.е.

query_posts('posts_per_page=1'); 

Источник: https://codex.wordpress.org/Function_Reference/query_posts

Обновлено: Добавление кода WP_Query принести последнюю липкую пост:

<?php 

$args = array(
    'posts_per_page' => 1, 
    'post__in' => get_option('sticky_posts'), 
    'ignore_sticky_posts' => 1 
); 
$the_query = new WP_Query($args); 
if ($the_query->have_posts()) : 
while ($the_query->have_posts()) : $the_query->the_post(); ?> 

<div class="post"> 

    <h3><?php echo get_the_title(); ?></h3></a> 
     <p><?php echo get_the_excerpt(); ?></p> 

</div>    


<?php 
     endwhile; 
     endif; 
     wp_reset_postdata(); 
      ?> 
+0

Это не сработало, я также отредактировал мой код выше, мне не хватало последние пару строк. –

+0

Как насчет маршрута WP_Query, поскольку это более простой и эффективный и даже более быстрый запрос для таких ситуаций? Если вы можете сделать это с помощью Wp_Query, вы выберете это? Я могу помочь в этом, если проблема связана с кодировкой. – Mohsin

+0

Да, я открыт для чего-нибудь действительно –

1

Простейшим решением для решения (обходной) проблемы является удаление цикла while. Таким образом вы будете печатать только один.

Конечно, это не оптимально, поскольку другие страницы могут быть извлечены и не использованы; вы можете попробовать использовать posts_per_page=1 или post_limits=1, чтобы узнать, решите проблему.

+0

Я бы предпочел не использовать метод «обходного пути», но его хороший вариант резервного копирования. благодаря –