这是a known, reported WordPress bug.
有一些变通方法,例如this one:
add_action( \'edited_term_taxonomy\',\'wpse26548_edited_term_taxonomy\', 10, 2 );
function wpse26548_edited_term_taxonomy($term,$taxonomy) {
global $wpdb,$post;
//in quick edit mode, $post is an array()
//in full edit mode $post is an object
if ( is_array( $post ))
$posttype=$post[\'post_type\'];
else
$posttype=$post->post_type;
if ($posttype) {
$DB_prefix=$wpdb->get_blog_prefix(BLOG_ID_CURRENT_SITE);
$sql = "UPDATE ".$DB_prefix."term_taxonomy tt
SET count =
(SELECT count(p.ID) FROM ".$DB_prefix."term_relationships tr
LEFT JOIN ".$DB_prefix."posts p
ON (p.ID = tr.object_id AND p.post_type = \'".$posttype."\' AND p.post_status = \'publish\')
WHERE tr.term_taxonomy_id = tt.term_taxonomy_id)
WHERE tt.taxonomy = \'".$taxonomy->name."\'
";
$wpdb->query($sql);
}
}
您可能还需要将以下内容添加到
register_taxonomy()
参数数组:
\'update_count_callback\' => \'_update_post_term_count\'
请注意,这些都是完全未经测试的。
(另请参见:this related WPSE question)