正在删除WordPress中的默认类别

时间:2012-07-11 作者:Pam Apple

我正在寻找一种在wordpress中删除默认类别功能的方法,但在wp_terms 表中,它会自动将默认类别分配给另一个类别。

有人知道如何做到这一点吗?

谢谢你的帮助。

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

不可能的WordPress需要硬编码的默认类别。

如果需要没有默认值的分类法,请创建custom taxonomy.

SO网友:mystline

我可以通过手动删除数据库中的记录来实现这一点,如果我记得正确,它位于wp\\U术语中,但我可能错了。

SO网友:Spock

解决方案:

这是一个非常古老的问题,但我有一个类似的要求,我找到了一种方法。

add_filter( \'pre_option_default_category\', \'__return_empty_string\', 999 );
为什么上面的代码可以工作当WordPress试图在此处保存后设置默认类别时,这将为其提供空字符串:https://github.com/WordPress/WordPress/blob/7004afe4f4bac1fd17a142051832bdf6be8e6fcf/wp-includes/post.php#L3672-L3680

// Make sure we set a valid category.
if ( empty( $post_category ) || 0 == count( $post_category ) || ! is_array( $post_category ) ) {
    // \'post\' requires at least one category.
    if ( \'post\' == $post_type && \'auto-draft\' != $post_status ) {
        $post_category = array( get_option( \'default_category\' ) );
    } else {
        $post_category = array();
    }
}
稍后,它将尝试在此处分配该类别:https://github.com/WordPress/WordPress/blob/7004afe4f4bac1fd17a142051832bdf6be8e6fcf/wp-includes/post.php#L3955-L3957

    if ( is_object_in_taxonomy( $post_type, \'category\' ) ) {
        wp_set_post_categories( $post_ID, $post_category );
    }
该函数将从elseif返回true,因为类别数组不是空的,但此处的值是空的https://github.com/WordPress/WordPress/blob/7004afe4f4bac1fd17a142051832bdf6be8e6fcf/wp-includes/post.php#L4613-L4622

if ( empty( $post_categories ) ) {
    if ( \'post\' == $post_type && \'auto-draft\' != $post_status ) {
        $post_categories = array( get_option( \'default_category\' ) );
        $append          = false;
    } else {
        $post_categories = array();
    }
} elseif ( 1 == count( $post_categories ) && \'\' == reset( $post_categories ) ) {
    return true;
}
注意,用户将看到在中设置默认类别的选项wp-admin/options-writing.php 此代码不会禁用该功能,但该功能将不再工作。

SO网友:Eric34

最简单的方法是转到“wp\\U选项”表,并将“default\\u category”设置为0。

我不明白为什么人们总是说术语是Wordpress的绝对要求。事实并非如此。

SO网友:Matt Sawyers

如果没有其他内容,您可以将默认类别从“未分类”更改为“新闻”或与您的使用相关的内容。

结束

相关推荐

WP_LIST_CATEGORIES()排除除一个类别外的所有类别

有没有办法排除除一个类别之外的所有类别?我想显示一个类别和它的子类别作为下拉菜单,但管理员可能会添加更多的子类别,所以我不想限制他们可以放在那里的唯一ID。所以我想排除除1及其子类别之外的所有类别。wp\\u list\\u categories()是否可以这样做?