将具有特色的内容按原始顺序保留在首页中


17

我正在搜索如何将精选帖子保留在我的博客主页中,而不将其从查询帖子中排除。我的博客使用二十四岁主题。我找到了这个解决方案。

从主题的inc文件夹中打开Featured-content.php,然后查找以下代码(在本例中为第269行)。

$query->set( 'post__not_in', $featured );

只需在该行前面加上两个斜杠将其注释掉即可:

// $query->set( 'post__not_in', $featured );

但是该文件没有该行,并且子主题不能覆盖父主题的inc文件夹。

我找到了另一个解决方案,它可以工作,但是,问题是此代码显示的是精选内容发布,而不是按其原始顺序显示。当旧内容帖子(我正在使用粘性帖子制作特色帖子)成为精选帖子时,精选内容帖子将成为第一顺序,然后成为其他帖子。

我尝试使用这样的条件标签。

function show_featured_content_on_home() {
if ( !is_home() ) {
remove_action( 'pre_get_posts', array( 'Featured_Content', 'pre_get_posts' ) );
    }
}
add_action( 'init', 'show_featured_content_on_home', 31 );

第二页,依此类推-依次显示精选帖子-但首页仍然存在问题。

有什么建议么?


我想我有答案。为了使它起作用,您必须使用'featured'标签而不是使用便利贴来制作特色内容。所以解决方案是正确的,我有错误的理解并提出错误的问题。您可以删除条件标签,因为代码可以在没有条件标签的情况下正常运行。
Naziman Azlye 2014年

1
我知道这已经很晚了,但是您介意添加以上评论作为答案吗?这个问题有很多争议,并且有一个正确的答案可以使它更加明显。提前致谢!
kraftner

Answers:


1

我认为您可以使用WPQuery

    $the_query = new WP_Query( array( 'post__in' => get_option( 'sticky_posts' )) ); ?>

    <?php if ( $the_query->have_posts() ) : ?>

        <!-- pagination here -->

        <!-- the loop -->
        <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>   
<h2><?php the_title(); ?></h2>
        <?php endwhile; ?>
        <!-- end of the loop -->

        <!-- pagination here -->

        <?php wp_reset_postdata(); ?>


    <?php endif; ?>

要订购您的文章,您可以使用order和orderby,请参阅参考 https://codex.wordpress.org/Class_Reference/WP_Query

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.