在模板文件中,标准循环语法将只显示有关该页面的信息(事实上,模板文件只不过是一个页面)。如果要显示某些帖子,需要运行自定义查询或包含(get_template_part()
) 另一个模板文件,通常用于查询某些特定的帖子类型或类别。
Page template example
/*Template name: Example page */
get_header();
/* The following loop refers to the page object */
if( have_posts() ) : while( have_posts() ) : the_post();
the_title();
the_excerpt();
endwhile; endif;
/* Now you can query for your post using WP_Query Class */
/* Defining $args array of arguments */
$args = array(
\'post_type\' => \'post\', // maybe page | custom post type | an array of these
\'posts_per_page\' => 6, // number of items you want to display
);
/* Define new $query object to loop through */
$query = new WP_Query( $args );
//Start your custom loop
if( $query->have_posts() ) : while( $query->have_posts() ) : $query->the_post();
the_title();
the_excerpt();
endwhile; else:
echo \'No posts found\';
endif;
get_footer();
如果遇到问题,请告诉我:)
请看WordPress Codex:
- Templates
- Stepping into templates
- Template Hierarchy
- The Loop
- WP_Query
UPDATE
如果查看我的示例代码,您将看到一个$args数组。您可以在其中定义多个选项,请参阅WP\\U查询文档。注:
have_posts()
; 和
the_post();
函数不接受任何参数。如果要使用
in_category();
你必须在循环中完成。
自定义循环
if( $query->have_posts() ) : while( $query->have_posts() ) : $query->the_post();
if( in_category( 6 ) ){
//do something
}else{
//do something else
}
endwhile; endif;