Display Posts on Custom Page

时间:2017-03-27 作者:Beau Beau

我有一个为我的主页创建的自定义页面模板。我把它设置为阅读设置下的静态主页。我想能够显示我博客页面上最后三篇标题为“新闻”的新闻帖子。

我尝试了以下循环,但它正在从自定义页面内容中提取内容:

<?php
        if ( have_posts() ) :

            if ( is_home() && ! is_front_page() ) : ?>
                <header>
                    <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
                </header>

            <?php
            endif;

            /* Start the Loop */
            while ( have_posts() ) : the_post();


                get_template_part( \'template-parts/content\', get_post_format() );


            endwhile;

            the_posts_navigation();

        else :

            get_template_part( \'template-parts/content\', \'none\' );

        endif; ?>
我需要显示文章标题、日期、摘录和阅读更多链接。

如果这有助于你理解为什么需要模板部分,我也在根据下划线主题的当前版本构建这个。

任何帮助都将不胜感激。

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

如果新闻是一类帖子,那么:

首先,找到类别ID,登录到wp admin,转到Posts->Categories,鼠标悬停在“News”类别上,cat ID应该显示在浏览器的左下角(对于chrome,这是有效的,不确定其他浏览器)

function my_news_category( $query ) {
  if ( $query->is_frontpage() && $query->is_main_query() ) {
    $query->set( \'cat\', \'18\');     //remember change this to the actual cat id
  }
}
add_action( \'pre_get_posts\', \'my_news_category\' );
对于此解决方案,您根本不需要更改下划线模板。

替代解决方案是添加query_posts() 按照我在评论中的建议,在临街模板上显示主循环之前。看见official documentation 有关如何实现它的更多详细信息。

相关推荐

Last post in loop when even

我使用这段代码尝试检查每个页面上的最后一篇文章循环是否均匀,以便添加不同的类。这可以检查它是否是最后一篇文章:( ( 1 == $wp_query->current_post + 1 ) == $wp_query->post_count ) 这可以检查它是否是一个均匀的帖子( $wp_query->current_post % 2 == 0 ) 但这并没有检查这是否是最后一篇文章,甚至。 ( ( 1 == $wp_query->current_post + 1