在wordpress中,我有一个名为news的页面模板,我想显示一个类别的所有帖子 - “新闻”。我不想使用category.php,因为网站上已有一个庞大的博客。
query_posts('cat=145');
while ( have_posts() ) : the_post();
//do something
endwhile;
工作正常但我已经读过query_posts有缺点(比如速度)
我试过这样做,但它只是向我展示了什么:
while ( have_posts() ) : the_post();
if ( in_category( '145' ) ) : //also tried 'News'
//do something
为什么'in_category不能在这里工作?
答案 0 :(得分:1)
您可以通过WP Query来实现您的要求。
文档:https://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters 例如:
var menusOnListElements = element.all(by.repeater('menu in menus').column('menu.name'))
this.isMenuListed = function(menu) {
return menusOnListElements.each(function(element) {
return element.getText().then(function (name) {
if (menu.name === name) {
return true; //this is executed
}
});
});
};
答案 1 :(得分:1)
请尝试以下代码:
$args = array('post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => 'news' // please pass here you news category slugs
),
)
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
print_r($post);
endwhile;
wp_reset_postdata();
答案 2 :(得分:0)
尝试使用get_posts()功能:
$get_p_args = array('category'=> 145,'posts_per_page'=>-1);
$myposts = get_posts( $get_p_args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
<div>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</div>
<?php endforeach;
wp_reset_postdata();?>
答案 3 :(得分:0)
尝试一下:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
global $wp_query;
$args = array_merge( $wp_query->query_vars, array(
'post_type' => 'post', // You can add a custom post type if you like
'paged' => $paged,
'posts_per_page' => 6, // limit of posts
'post_status' => 'publish',
'orderby' => 'publish_date',
'order' => 'DESC',
'lang' => 'en', // use language slug in the query
) );
query_posts( $args );