$posts = query_posts(array('post_type'=>'sedan', 'category'=>'1', 'posts_per_page'=>'4'));
上述查询中的category
参数似乎无法按预期工作。它显示了Sedan
帖子类型中的所有帖子,但我想在category ID = 1
中仅指定Sedan post type
的类别。
答案 0 :(得分:5)
尝试
$posts = query_posts(array('post_type'=>'sedan', 'cat'=>'1', 'posts_per_page'=>'4'));
cat
代替category
。
也不会使用 query_posts()
进行查询。
https://codex.wordpress.org/Function_Reference/query_posts
使用get_posts()
或WP_Query()
您可以通过以下方式实现相同目标:
$posts = get_posts(array('post_type'=>'sedan', 'category'=>'1', 'posts_per_page'=>'4'));
然后更安全地修改主查询。
我自己总是更喜欢WP_Query
。
$args = array(
'post_type'=>'sedan',
'cat'=>'1',
'posts_per_page'=>'4'
);
$posts = new WP_Query($args);
$out = '';
if ($posts->have_posts()){
while ($posts->have_posts()){
$posts->the_post();
$out .= 'stuff goes here';
}
}
wp_reset_postdata();
return $out;
答案 1 :(得分:2)
尝试使用get_posts
refrence
$args = array( 'posts_per_page' => 5, 'offset'=> 1, 'category' => 1 );
$myposts = get_posts( $args );
或其他选项是使用WP_Query
$new = new WP_Query('post_type=discography&category_name=my-category');
while ($new->have_posts()) : $new->the_post();
the_content();
endwhile;
或使用cat id
$cat_id = get_cat_ID('My Category');
$args=array(
'cat' => $cat_id,
'post_type' => 'discography',
'post_status' => 'publish',
'posts_per_page' => 5,
'caller_get_posts'=> 1
);
$new = new WP_Query($args);
答案 2 :(得分:0)
这对我有用。
$args=array(
'posts_per_page' => 50,
'post_type' => 'my_custom_type'
'tax_query' => array(
array(
'taxonomy' => 'category', //double check your taxonomy name in you db
'field' => 'id',
'terms' => $cat_id,
),
),
);
$wp_query = new WP_Query( $args );