仅显示一个类别的新博客模板

时间:2015-12-20 作者:Maud Kon

我知道我可以复制主题的默认博客模板,并更改代码,使其仅显示主题样式中一个类别的帖子。我试图修补它,但还没有结果。这是主题中的代码:

$posts = new WP_Query( array(\'post_type\'=>\'post\', \'paged\'=>$paged) );
            if( $posts->have_posts() ):
                echo \'<div class="list-posts">\';
                while( $posts->have_posts() ) : $posts->the_post();
                    get_template_part( \'content\', get_post_format() ); 
                endwhile;
                echo \'</div>\';

                wp_reset_postdata();
            else:
                echo \'<div class="alert alert-error">\'.esc_html__(\'Sorry. There are no posts to display\', \'gon\').\'</div>\';
            endif;
我尝试更改上的值while( $posts->have_posts() ) : $posts->the_post(); 但没有成功。

我怎样才能做到这一点?

1 个回复
SO网友:s_ha_dum

如果你的主题正在为主页循环创建一个新的查询,那就是做错了。要获取类别存档,您只需要一个名为according to one of these patterns, 根据您的需要:

  1. category-{slug}.php ;–如果类别的slug为news, WordPress将查找category-news.php.
  2. category-{id}.php ;–如果类别的ID为6, WordPress将查找category-6.php.
  3. category.php
中有一个循环,如下所示:

if( have_posts() ) {
  echo \'<div class="list-posts">\';
  while( have_posts() ) {
    $posts->the_post();
    get_template_part( \'content\', get_post_format() ); 
  }
  echo \'</div>\';
  wp_reset_postdata();
} else {
  echo \'<div class="alert alert-error">\'.esc_html__(\'Sorry. There are no posts to display\', \'gon\').\'</div>\';
}
此外,当然,主题需要围绕它编写的任何代码。我真的猜不出那代码是什么样子。

相关推荐

About wordpress child themes

我对WordPress和儿童主题有一些问题。据我所知,如果我不想在更新主题时失去任何东西,使用子主题是很重要的。我是WordPress的初学者,到目前为止,我一直在使用PageBuilder(管理面板上的板载自定义选项)自定义我的网站,并在“附加CSS”选项中加入几行CSS。所有这些都是在主主题上完成的(只是玩转尝试学习),现在我想开始使用一个儿童主题。问题如下:我不知道我是否可以像通过管理界面设计父主题那样设计我的子主题,或者我是否必须通过文本编辑器(在我的计算机上,然后通过FTP等方式上传)对所有内容