我的帖子分为两类。 (特色,新闻)。 我试图计算'特色'类别中的帖子,如果超过5我希望它删除6,7,8,... 只保留最新5 .. 到目前为止,我可以使用此代码计算它们
$category = get_category(830);
$count = $category->category_count;
if( $count > 5 ) {
// stuff
}
但在if语句中如何获取项目6,7,8 ......?
我只想删除category_id 830中的“精选”类别,并保留其中列出的其他类别(新闻)。
我做了这个功能,但是当我使用它时我得到错误500。 你能救我吗?
$my_query = new WP_Query( 'category_name=featured' );
function countfeatures($my_query) {
$featurecount = 0;
while ( $my_query->have_posts() ) : $my_query->the_post();
$featurecount++;
if ($featurecount > 5){
$pos = array_search( 'featured', $post_cats );
unset( $post_cats[$pos] );
wp_set_post_terms ($post_id, $post_cats, 'category');
//wp_set_post_terms ($slide->ID, $post_cats, 'category');
//do stuff
}
endwhile;
}
add_filter('pre_get_posts', 'countfeatures');
答案 0 :(得分:0)
使用限制查询5和按主键排序降序,这样您将获得前五名最新记录
答案 1 :(得分:-1)
只需添加orderby和order参数即可 最新的5个特色类别的帖子。
$args = array(
'post_type' => 'post',
'post_status'=> 'publish',
'posts_per_page'=>5,
'order'=>'DESC',
'orderby'=>'ID',
'tax_query' => array(
array(
'taxonomy' => 'featured',
'field' => 'term_id',
'terms' => array(830),
'operator' => 'IN',
),
),
);
$query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();