我有时会遇到类似的事情。在使用自定义帖子类型和分类法时,我最终做了以下工作:
在init(10之前)上设置回调以注册分类法在init(10之前)上设置另一个以注册post类型如果与其他人一起使用自定义分类法和帖子类型,并且他们在10注册,则可能稍后在10上设置另一个来关联它们这样做几乎总能消除我在自定义对象中遇到的奇怪问题,wordpress中关于register\\u*函数的文档指出,您肯定应该在初始化期间注册它们。
如果您不手动链接它们,您可能会或可能不会在它们之间进行适当的来回对话。。。update\\u callback\\u计数是来回对话的一部分,因此我在10之前的init期间注册所有对象,然后在10之后(或10之后)将它们关联起来。
add_action(\'init\', do_create_taxonomies, 7);
function do_create_taxonomies() {
# setup taxonomies as array of key => options arrays
foreach ( $taxonomies as $slug => $options ) {
register_taxonomy("{$slug}", null, "{$options}");
}
}
add_action(\'init\', do_create_post_types, 8);
function do_create_post_types() {
# setup post types as array of key => options arrays
foreach ( $post_types as $slug => $options ) {
register_post_type("{$slug}", "{$options}");
}
}
add_action(\'init\', do_bind_post_types_to_taxonomies, 11);
function do_bind_post_types_to_taxonomies() {
# setup relationships as Tax_slug => array( post_type_slugs )
foreach ( $relationships as $tax_slug => $post_types ) {
if ( is_array($post_types) ) {
foreach ( $post_types as $post_type_slug ) {
register_taxonomy_for_object_type( "{$tax_slug}", "{$post_type_slug}" );
}
} else {
register_taxonomy_for_object_type("{$tax_slug}", "{$post_types}");
}
}
}
这为我解决了与自定义帖子类型和分类法相关的各种奇怪问题。如果这不起作用,那么可能值得深入了解源代码,以了解\\u update\\u post\\u term\\u count是如何工作的。。。然后查看您的关系,看看它是否在强制执行\\u update\\u generic\\u term\\u count。