无法删除或编辑自定义分类中的单个术语,分类名称是否错误?

时间:2020-07-03 作者:38365

我用下面的基本代码创建了一个自定义分类法。不久前,我创建了一个名为“视频”的术语来测试它。我今天创建了一些其他术语,然后注意到我无法删除或编辑第一个创建的术语“视频”。它是灰色的,只提供视图链接,这是一个断开的链接。奇怪的是,使用正确的permalink结构,“视频”术语的页面确实按预期显示。

我可以创建和编辑其他术语,没有任何错误。在WP管理页面的其他地方也没有错误。

更新时间:

排除故障后,我认为问题是因为我最初创建了名为Purpose, 但后来改成purpose. 使命感$object->taxonomy 退货Purpose, 而管理面板中列出的所有其他purpose.

如何更改此术语的分类法Purposepurpose?

以下是创建分类法的函数:

function post_purpose_taxonomy()
{
    $args = array (
        \'labels\' => array(\'name\' => \'Purpose Tags\', \'singular_name\' => \'Purpose Tag\'),
        \'hierarchical\' => false,
        \'public\' => true,
    );
    register_taxonomy(\'purpose\', [ \'post\', \'dvposts\' ], $args);
}
add_action(\'init\', \'post_purpose_taxonomy\');
您可以看到,我将分类法注册到了post和自定义post类型“dvposts”。

以下是快照:

Cannot delete or edit a single term in a custom taxonomy

1 个回复
SO网友:38365

这个答案完全归功于CodeMascot:Create and move terms for taxonomies

排除故障后,我认为问题是因为我最初创建了名为Purpose, 但后来改成purpose 在另一个时间。使命感$object->taxonomy 退货Purpose 在受影响的期限内,而管理面板中列出的所有其他人返回purpose.

我强烈怀疑,最初以大写字母开头的分类法产生了特权问题,可能与一些小写方法有关,因为允许一些特权。一旦分类名称完全匹配,所有问题都得到解决。

在我的故障排除确定术语的分类键不正确后,问题变成了;如何更改现有术语的分类键;?答案是你必须接触到强大而危险的global $wpdb. 此变量允许您直接访问和写入WordPress数据库。我在函数中添加了以下内容。php文件,然后刷新页面两到三次,问题就解决了。

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

the_dramatist_change_terms_taxonomy(26,\'purpose\');
现在已经进行了更改,我已经从函数中删除了该函数。php文件和$object->taxonomy 退货purpose.

相关推荐

更改分类术语的默认顺序-PRE_GET_TERMS

我想通过其“term\\u order”值而不是管理端的“name”来更改默认的分类术语顺序。所以我尝试了下面的方法。但它不工作,php内存耗尽。function uc_order_term( $wp_query ) { $wp_query->query( array( \'taxonomy\' => \'category\', \'orderby\' => \'term_order\