【问题标题】:Wordpress- I deleted Parent Category but Child catageory still remainsWordpress-我删除了父类别但子类别仍然存在
【发布时间】:2014-04-25 03:10:21
【问题描述】:

您好,我认为当我们删除父类别时,所有子类别也会被删除,但并没有删除。这是wordpress中的错误吗?有没有我们可以从 wordpress 得到的参考,这是他们的实现?感谢目前,我使用的是 3.8.1 wordpress 版本。请指教。谢谢!

【问题讨论】:

    标签: wordpress blogs categories


    【解决方案1】:

    这不是 bug,是 WordPress 实现的,删除父类别后子类别仍然存在。

    但是,如果您还需要删除子类别,您可以使用 WordPress 挂钩“delete_category”来执行您的自定义操作。欲了解更多信息,请查看this link

    【讨论】:

    • 嗨,有没有我们可以从 wordpress 获得的参考资料表明这是他们的实现?谢谢
    【解决方案2】:

    只需为 WooCommerce 的产品类别执行此操作,就可以了:

    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 );
    
                }
    
            }
        }
    
    }
    

    如您所见,我添加了一个条件来仅使产品类别​​发生这种行为。如果您删除条件分类法,它将适用于您网站的所有分类法。

    如果您在所有术语的层次结构中有很多子类别或项目,则结束进程可能需要相当长的时间(执行时间超时和内存限制耗尽是某些可能性)。

    请注意,无需迭代,因为每次wp_delete_term() 调用都会执行挂钩。

    另外请注意,为了让前端在单击“删除”时删除类别及其子类别,需要一些额外的 javascript 代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多