当我创建帖子并尝试将帖子分配到类别时,右侧的小部件显示混合的类别。例如,当我创建类别时,我在父类别“Men”下面有“附件”类别,但在小部件中它没有出现在它下面;只有当我转到左侧菜单上的类别时才会以正确的顺序显示。有什么问题?
在类别中,我有这个层次结构
但是当我分配帖子但是当我将帖子分配给类别时,例如 Men-Accesories-Ties , Men 在类别中排名第二而不是第一个因此搞乱面包屑也是
答案 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 );
}
}
在左边是默认列,在右边是自定义列。
[第一个版本]
我想你在谈论后端(/wp-admin
)。你看到的行为是WordPress的默认行为。要摆脱这个“功能”,您需要插件Category Checklist Tree:
在帖子编辑屏幕上,保存帖子后,您会注意到 选中的类别显示在顶部,打破了类别 层次结构。此插件删除了“功能”。
此外,它会自动滚动到第一个选中的类别。
也适用于自定义分类法。
答案 1 :(得分:0)
试试this plugin。它表示它可以在小部件中按层次显示类别。