如何让我的首页只显示最新的粘性帖子,以及常见的小工具?

时间:2012-02-27 作者:O. Jones

WP 3.3.1,Suffusion 4.0.2

我想知道如何使我的首页只显示标记为粘滞的最新帖子。我在文档中找不到如何做到这一点。

我想做的是结合未来的发布日期和过期时间(通过Atropos插件)来控制我的首页上显示的内容。

有什么建议吗?有没有一个插件有一个短代码,可以让我插入最新的贴子?

2 个回复
最合适的回答,由SO网友:cmegown 整理而成

如果我理解正确,您只想在首页显示最新的粘性帖子。一两个月前,我也遇到了同样的问题,并在WordPress Answers得到了社区的大力帮助。解决方案是在索引中运行两个循环。php文件。一个只拉最近的粘贴帖子,另一个显示所有其他类型的帖子。

这是link, 但我也会发布这个问题的代码。

<?php get_header(); ?>
<?php get_sidebar( \'left\' ); ?>

<?php if ( is_home() && !is_paged() ) : ?>
<div id="post-wrapper">
    <?php
        // Get IDs of sticky posts
        $sticky = get_option( \'sticky_posts\' );
        // first loop to display only my single, 
        // MOST RECENT sticky post
        $most_recent_sticky_post = new WP_Query( array( 
            // Only sticky posts
            \'post__in\'            => $sticky, 
            // Treat them as sticky posts
            \'ignore_sticky_posts\' => 1, 
            // Order by date to get the most recently published sticky post
            \'orderby\'             => date, 
            // Get only the one most recent
            \'posts_per_page\'      => 1
        ) );
        ?>

    <?php while ( $most_recent_sticky_post->have_posts() ) :  $most_recent_sticky_post->the_post(); ?>
        <!-- your code to display most recent sticky -->
    <?php endwhile; wp_reset_query(); ?>

<?php endif; ?>

<?php
    $all_other_posts = array(
        \'post__not_in\'  => get_option( \'sticky_posts\' )
    );

    global $wp_query;
    $merged_query_args = array_merge( $wp_query->query, $all_other_posts );
    query_posts( $merged_query_args );
?>

<?php if( have_posts() ) : ?>
    <?php while( have_posts() ) : the_post(); ?>
        <!-- your code to display all other posts -->
    <?php endwhile; ?>
<?php endif; ?>
</div> <!-- end #post-wrapper -->
显然,这段代码并不是对每个人都进行复制和粘贴。它在当时的代码结构中对我起作用。另外,请原谅这些讨厌的格式:P

SO网友:Bruce

非常感谢!这很有帮助。一条评论:如果您希望将最新的帖子显示为特色帖子(即,如果帖子没有被粘贴),并且不希望将此帖子复制到常规列表中,那么在第一个循环中更改:

while ( $most_recent_sticky_post->have_posts() ) :  $most_recent_sticky_post->the_post(); 
收件人:

while ( $most_recent_sticky_post->have_posts() ) :  $most_recent_sticky_post->the_post(); 
$do_not_duplicate = $post->ID; 
在第二个循环中,更改:

if( have_posts() ) : while( have_posts() ) : the_post();

if( have_posts() ) : while( have_posts() ) : the_post();
if( $post->ID == $do_not_duplicate ) continue;
布鲁斯

结束

相关推荐

在FrontPage上显示帖子中的自定义字段值

如何为所有帖子提取一个带有meta\\u键“property\\u feature”(并且有一个值)的自定义字段,并将其显示在我的frontpage上?要将帖子名称显示为值上方的链接。。