类别未出现在正确的层次结构中

时间:2013-04-04 14:22:28

标签: wordpress

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

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

  

enter image description here

但是当我分配帖子但是当我将帖子分配给类别时,例如 Men-Accesories-Ties Men 在类别中排名第二而不是第一个因此搞乱面包屑也是

  

enter image description here

2 个答案:

答案 0 :(得分:1)

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

以分层方式组织该列的no way。解决方案是创建自定义列并使用此Codex snippet

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

在左边是默认列,在右边是自定义列。

  

enter image description here


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

  

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

     

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

     

也适用于自定义分类法。

答案 1 :(得分:0)

试试this plugin。它表示它可以在小部件中按层次显示类别。