从分类中删除术语并在新的分类中分配术语

时间:2016-10-19 作者:apoorv

我有一个页面,其中管理员在新的分类法中指定了术语,并将其从已指定的分类法中删除。

就像我有一个车辆帖子类型,在车辆附加中有一堆条目。

现在,管理员将决定他想在安全功能中输入安全气囊,而不是已经分配的车辆额外功能。

因此,应删除“vehicle extra”下的术语条目,并在“security”功能下创建新的术语条目。

wp_update_term( 3164, \'vehicle_interior_feature\' );
在哪里3164 术语ID是否已存在,以及vehicle_interior_feature 这就是新的分类法。虽然vehicle_extras 是分配给此术语的旧分类法。

1 个回复
最合适的回答,由SO网友:CodeMascot 整理而成

wp_update_term() 不会更改分类法。它只是更新了现有的分类法。说出下面的代码-

$update = wp_update_term( 1, \'category\', array(
    \'name\' => \'Uncategorized Renamed\',
    \'slug\' => \'uncategorized-renamed\'
) );

if ( ! is_wp_error( $update ) ) {
    echo \'Success!\';
}
此代码查找category 哪个ID是1, 然后将其更新到nameslug 作为参数传递。在我的系统中category 带ID1Uncategorized. 因此它将重命名它。

对于更改术语分类法,没有默认函数。我给你写了一封信。看看下面-

function the_dramatist_change_terms_taxonomy( $term_id, $future_taxonomy ){
    global $wpdb;
    $update = $wpdb->update(
        $wpdb->prefix . \'term_taxonomy\',
        [ \'taxonomy\' => $future_taxonomy ],
        [ \'term_taxonomy_id\' => $term_id ],
        [ \'%s\' ],
        [ \'%d\' ]
    );
    return $update;
}
在这里$term_id 是您想要更改的术语ID,并且$future_taxonomy 是未来分类法的术语。$future_taxonomy 必须是string 喜欢\'category\', \'post_tag\'\'vehicle_interior_feature\'. 它实际上直接更新数据库值。所以使用前要小心。如果您的term 有任何父项。因为它基本上是在更新taxonomy 价值在wp_terms_taxonomy 表,而不是任何其他表。对于更新术语分类法,我没有找到更好的选择。

希望此代码对您有所帮助。

相关推荐

GET_THE_TERMS与wp_GET_POST_TERMS中的奇怪结果

我正在尝试制作一个面包屑函数,但有一个小问题。。。使用时:$categories = get_the_terms( $post->ID, \'product_cat\' ); 我得到了一个循环中使用的类别数组,等等。唯一的问题是它是按字母顺序排列的。(我希望它按层次顺序排列。)经过一番挖掘,我发现了一种替代方法,即使用wp\\u get\\u post\\u terms(),但我肯定遗漏了一些东西,因为当我使用此方法时:$categories = wp_get_post_terms( $p