将“菜单顺序”列添加到自定义帖子类型管理屏幕


33

我想使用该menu order属性来控制用于特定目的的自定义帖子类型的排序。

将其添加到CPT很容易,supports => array('page-attributes')但是如何在此CPT的管理列表屏幕上显示菜单顺序值?

Answers:


48

好的-最终结果非常简单-因为我有某种心理障碍- menu_order$post对象中的一个变量(感谢@brady提醒我这一点)。

@scribu 在创建可排序的列值文章中给出了其余内容。

因此,假设自定义帖子类型称为header_text,这些是所需的功能和挂钩:

为订单添加新列

/**
* add order column to admin listing screen for header text
*/
function add_new_header_text_column($header_text_columns) {
  $header_text_columns['menu_order'] = "Order";
  return $header_text_columns;
}
add_action('manage_edit-header_text_columns', 'add_new_header_text_column');

渲染列值

/**
* show custom order column values
*/
function show_order_column($name){
  global $post;

  switch ($name) {
    case 'menu_order':
      $order = $post->menu_order;
      echo $order;
      break;
   default:
      break;
   }
}
add_action('manage_header_text_posts_custom_column','show_order_column');

将列设置为可排序

/**
* make column sortable
*/
function order_column_register_sortable($columns){
  $columns['menu_order'] = 'menu_order';
  return $columns;
}
add_filter('manage_edit-header_text_sortable_columns','order_column_register_sortable');

在WP 3.1中,manage_edit-$ {post_type} _columns已由manage _ $ {post_type} _posts_columns取代:Codex
ptriek

真的没有办法将其设置为默认顺序吗?喜欢专页吗?
Howdy_McGee

7

太长了,但是仅作记录,您可以在admin中显示“菜单顺序”选项,只需在“ supports”选项数组中包括“ page-attributes”即可。例如:

    register_post_type( 'columna',
    array(
        'labels' => array(
            'name' => __( 'Columnas' ),
            'singular_name' => __( 'Columna' ),
        ),
        'supports' => array( 'title', 'thumbnail', 'excerpt', 'page-attributes' ),
        'public' => true,
        'has_archive' => false,
        'menu_position'=>5
    )
);

2
发布问题的人已经知道“页面属性”。它不能以所需的方式显示页面顺序值。
s_ha_dum 2012年

我在自定义帖子类型的支持中具有页面属性,在编辑这些自定义帖子类型之一时,确实向侧边栏添加菜单顺序,但是在wp admin中查看自定义帖子类型中所有项目的列表时,它没有显示菜单顺序列。还有其他要求才能显示出来吗?在屏幕上列选项下,日期是唯一选项,并且选中该选项。
cchiera

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.