我正在尝试使用动作挂钩delete_term
和delete_$taxonomy
, 在其他删除一个术语的钩子中,它们呈现了相同的问题。
例如1234
是中的现有术语favorite
自定义分类法:
add_action( \'delete_favorite\', function( $term, $tt_id ) {
$get_term1 = get_term( $term, \'favorite\' );
$get_term2 = get_term( 1234, \'favorite\' );
$get_term_by1 = get_term_by( \'id\', $term, \'favorite\' );
$get_term_by2 = get_term_by( \'id\', 1234, \'favorite\' );
$get_term_by3 = get_term_by( \'name\', \'term-name\', \'favorite\' );
$output = \'get_term1: \' . $get_term1 . \' get_term2: \' . $get_term2 .
\' get_term_by1: \' . $get_term_by1 . \' get_term_by2: \' . $get_term_by2 .
\' get_term_by3: \' . $get_term_by3;
ob_start();
var_dump( $output );
$contents = ob_get_contents();
ob_end_clean();
error_log( $contents );
}, 10, 2 );
他们都一无所获。那么,如何在这些类型的函数中得到这个术语呢?
函数get\\u term和get_term_by
在其他地方工作,但在这些挂钩内。怎么了?
SO网友:Gixty
使用get_term_by
我们需要term
对象,然后将其删除。因此,我们应该使用动作挂钩delete_term_taxonomy
在删除术语之前运行的。
现在,我们可以继续执行一些任务,例如删除所有postmeta
与term
正在删除。
代码为:
add_action( \'delete_term_taxonomy\', function($tt_id) {
$taxonomy = \'category\';
$term = get_term_by(\'term_taxonomy_id\', $tt_id, $taxonomy);
$user_name = $term->name;
$meta_key = "_category_relation_added_" . $user_name;
delete_post_meta_by_key( $meta_key );
}, 9, 1);