Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress-我删除了父类别,但子类别仍然保留_Wordpress_Blogs_Categories - Fatal编程技术网

Wordpress-我删除了父类别,但子类别仍然保留

Wordpress-我删除了父类别,但子类别仍然保留,wordpress,blogs,categories,Wordpress,Blogs,Categories,嗨,我想当我们删除一个父类别时,所有的子类别也会被删除,但这并没有删除。这是wordpress中的一个bug吗?我们可以从wordpress那里得到一个参考,这就是他们的实现吗?谢谢,我现在使用的是3.8.1版wordpress。请告知。谢谢 这不是bug,这是WordPress实现,删除父类别后子类别仍然保留 但是,如果您也需要删除子类别,您可以使用WordPress钩子“delete_category”来执行自定义操作。欲了解更多信息,请查看刚刚为WooCommerce的产品类别做了这项工作

嗨,我想当我们删除一个父类别时,所有的子类别也会被删除,但这并没有删除。这是wordpress中的一个bug吗?我们可以从wordpress那里得到一个参考,这就是他们的实现吗?谢谢,我现在使用的是3.8.1版wordpress。请告知。谢谢

这不是bug,这是WordPress实现,删除父类别后子类别仍然保留


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

刚刚为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\u delete\u term()
都会执行钩子


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

Hi,我们是否可以从wordpress获得一个参考,这是他们的实现?谢谢