GET_TERM和GET_TERM_BY返回NULL或FALSE,即使TERM存在

时间:2014-03-19 作者:Gixty

我正在尝试使用动作挂钩delete_termdelete_$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 在其他地方工作,但在这些挂钩内。怎么了?

1 个回复
SO网友:Gixty

使用get_term_by 我们需要term 对象,然后将其删除。因此,我们应该使用动作挂钩delete_term_taxonomy 在删除术语之前运行的。

现在,我们可以继续执行一些任务,例如删除所有postmetaterm 正在删除。

代码为:

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

结束

相关推荐

尝试使用wp_set_Object_Terms,同时为术语ID和文本分类法提供数组

我想用wp_set_object_terms 参考号:http://codex.wordpress.org/Function_Reference/wp_set_object_terms 同时传递术语和分类的数组出于某种原因,我一直得到:Warning: Illegal offset type in isset or empty in /home1/stodeckc/public_html/clicktranslate/wp-includes/taxonomy.php on line 231这就是我试图设