0

当我创建帖子并尝试将帖子分配给类别时,右侧的小部件会显示混合的类别。例如,当我创建类别时,我在父类别“Men”下有“accessories”类别,但在小部件中它没有出现在它下面;只有当我转到左侧菜单上的类别时,它才会以正确的顺序出现。怎么了?

在类别中,我有这个层次结构

在此处输入图像描述

但是当我将帖子分配给但当我将帖子分配给类别时,例如Men-Accesories-TiesMen在类别中出现第二而不是第一,因此也弄乱了面包屑

在此处输入图像描述

4

2 回答 2

1

我将把这个答案的第一个版本留在底部,因为它可能有用。

无法以分层方式组织该列。解决方案是制作一个自定义列并使用此Codex 片段

// Change "post_" for the desired post type
add_filter( 'manage_edit-post_columns', 'custom_categories_register_so_15813936', 20, 1 );
add_action( 'manage_post_posts_custom_column', 'custom_categories_display_so_15813936', 20, 2 );

function custom_categories_register_so_15813936( $columns ) 
{
    $columns[ 'custom-cat' ] = 'Categories';
    return $columns;
}

function custom_categories_display_so_15813936( $column_name, $post_id ) 
{
    if ( 'custom-cat' != $column_name )
        return;

    // get the category IDs assigned to post
    $categories = wp_get_post_categories( $post_id, array( 'fields' => 'ids' ) );
    // separator between links
    $separator = ', ';

    if ( $categories ) {
        $cat_ids = implode( ',' , $categories );
        $cats = wp_list_categories( 'title_li=&style=none&echo=0&include=' . $cat_ids );
        $cats = rtrim( trim( str_replace( '<br />',  $separator, $cats ) ), $separator );
        $cats = str_replace( site_url('category/'), admin_url('edit.php?category_name='), $cats );
        echo str_replace( '/" title', '" title', $cats );
    }
}

左侧是默认列,右侧是自定义列。

在此处输入图像描述


[第一个版本]
我想您是在谈论后端(/wp-admin)。您看到的行为是 WordPress 默认的。要摆脱该“功能”,您需要插件Category Checklist Tree

在帖子编辑屏幕上,保存帖子后,您会注意到选中的类别显示在顶部,打破了类别层次结构。该插件删除了该“功能”。

此外,它会自动滚动到第一个选中的类别。

也适用于自定义分类法。

于 2013-04-04T16:33:49.600 回答
0

试试这个插件。它说它可以在小部件中分层显示类别。

于 2013-04-04T16:32:02.953 回答