编辑帖子时类别复选框列表树更改

时间:2012-12-21 作者:Elaine Marley

我正在为我的网站设置分类,我的分类如下:

Original categories order

就是这样,我有同名的孩子,但他们不能互换。如果你认为他们有不同的名字。

然后我去了一个帖子,我想给它添加类别,现在树完全消失了,类别顺序完全混乱了:

categories inside post

为什么会这样?并非总是这样,有时树表现得很好,但这种行为并不一致。我在其他博客上看到过无数次这种情况,到目前为止,我只是忽略了这种行为,因为我(或web管理员)可以确定哪个类别是哪个父类别的子类别,但事实并非如此,因为有些名称重复。无论如何,即使我的类别可能不是最佳实践,如果树像这样被破坏,可能最终用户不清楚一个类别是另一个类别的子类别,对吗?

编辑:这只发生在编辑帖子时,当我添加新帖子时,一切都很好:

enter image description here

2 个回复
最合适的回答,由SO网友:Pontus Abrahamsson 整理而成

类别列表使用功能wp_terms_checklist() 在里面wp-admin/includes/template.ph第90行的p。参数“checked\\u ontop”设置为true。因此,复选框将位于顶部。

这只有在编辑帖子时才会发生,当我添加新帖子时,一切都很好

Thats because when you create a post, none of the categories are checked and the list will be intact, but when you saves one it will appear on the top because of the "checked_ontop is set to true".

您可以通过将checked\\u ontop参数添加到主题函数中,将其更改为false来防止出现这种情况。php。

function wpse_prevent_on_top_cat() {
    // Run only in admin
    if( is_admin() && add_action(\'wp_terms_checklist_args\', \'wpse_prevent_on_top_cat\') ) {
        // Change checked_ontop to false
        $args[\'checked_ontop\'] = false;
        // Return the new parameter
        return $args;
    }
}
或者只需在以下代码上安装我的简单插件:https://github.com/pontusab/WordPress-Category-List

结果:

enter image description here

SO网友:navjotjsingh

我看到你已经为你的帖子选择了所有的父类别。添加新帖子时,订单会得到很好的维护。但是,当您编辑此类帖子时,与帖子堆栈关联的类别将显示在顶部,而其余类别将显示在底部。如果选择了父类别,则它们与子类别的关联将丢失,这就是它们无法正确显示的原因。这种行为只是出于设计。

结束

相关推荐

在HAVE_POSTS()之前修改WP查询POST__

我有一个插件,根据$_GET 数据(搜索辅助DB表)。我正试图加入标准have_posts() 在分类页面中调用函数以显示结果。因为数据是在实际页面上传入的,所以我不能使用普通pre_get_posts 待命,就像这样:function finder_sort($query) { if ($query->is_main_query() && is_tax(array(\'location_type\')) && isset($_GET[\'finder