嗨我想当我们删除父类别时,所有子类别也将被删除,但是没有删除。这是wordpress中的错误吗?是否有一个我们可以从wordpress获得的参考,这是他们的实现?感谢目前,我正在使用3.8.1 wordpress版本。请指教。谢谢!
答案 0 :(得分:0)
这不是错误,它是WordPress实现,删除父类别后,子类别仍然存在。
但是,如果您还需要删除子类别,可以使用WordPress钩子“delete_category”来执行自定义操作。有关详细信息,请查看this link
答案 1 :(得分:0)
只需要为WooCommerce的产品类别做到这一点,所以在这里:
Gson
正如您所看到的,我添加条件只会使产品类别发生此行为。如果您删除条件分类法,它将适用于您所有网站的分类法。
如果在所有术语的层次结构中有很多子类别或项目,则可能需要相当长的时间来结束该过程(执行时间超时和内存限制耗尽是某些可能性)。
请注意,无需迭代,因为每次add_action( 'pre_delete_term', 'prefix_pre_delete_term', 10, 2 );
function prefix_pre_delete_term( $term, $taxonomy ) {
if ( $taxonomy === 'product_cat' ) {
$term_children = get_term_children( $term, $taxonomy );
if ( !empty( $term_children ) ) {
foreach ( $term_children as $term_child ) {
wp_delete_term( $term_child, $taxonomy );
}
}
}
}
次呼叫都会执行挂钩。
另请注意,为了让前端在点击“删除”时删除类别及其子类别,将需要一些额外的JavaScript代码。