钩子delete_term_taxonomy
在删除类别之前激发。如果查看原始代码:
/**
* Fires immediately before a term taxonomy ID is deleted.
*
* @since 2.9.0
*
* @param int $tt_id Term taxonomy ID.
*/
do_action( \'delete_term_taxonomy\', $tt_id );
$wpdb->delete( $wpdb->term_taxonomy, array( \'term_taxonomy_id\' => $tt_id ) );
/**
* Fires immediately after a term taxonomy ID is deleted.
*
* @since 2.9.0
*
* @param int $tt_id Term taxonomy ID.
*/
do_action( \'deleted_term_taxonomy\', $tt_id );
您正在使用正确的挂钩达到预期目的。您的查询有问题,或者根本没有触发挂钩。你得到的答案是
Array(0)
?
您应该首先尝试查看在删除类别时是否能够触发挂钩。我使用日志功能测试挂钩和其他难以跟踪的功能,如cron或表单提交等。这有助于确保发生某些事情,并记录一些事件和输出。
You have a useful tutorial here on how to achieve this
如果您使用该触发器成功地将任何内容登录到日志文件中,则意味着您应该检查查询。这意味着钩子被触发了。
然而,看看您的代码,我可以看到您正在为此使用一个类。这让我相信问题来自于类的实例化,您何时调用这个类?钩子“add\\u action”函数是否放置在构造函数中?
为了避免OOP插件中的挂钩出现问题,我建议使用Devin Vinson\'s loader 这让我省去了很多麻烦,使用这种加载类有助于在一开始就注册挂钩,并在一个地方处理挂钩。
但是,如果您确实找到了钩子工作的证据,那么您应该签出查询。
是$category_ids
数组,如$category_ids = array(\'1\', \'2\', \'3\');
?
您是否尝试过在钩子之外的其他地方运行该查询?您可以尝试在其他安全的地方运行该查询,并确保得到预期的结果。