仅查询最新的粘贴帖子

时间:2015-10-21 16:23:19

标签: php wordpress sticky wp-query

所以我试图只从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();
?>

上面的代码我哪里出错?

2 个答案:

答案 0 :(得分:5)

使用posts_per_page代替&#34; showposts&#34;

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

答案 1 :(得分:1)

解决(解决方法)问题的最简单方法是删除while循环。这样,您只能打印一个。

当然,这是次优的,因为其他页面可能被取出和未使用;您可以尝试使用posts_per_page=1post_limits=1来查看是否解决了问题。