カスタム投稿タイプ管理画面に「メニュー順序」列を追加


33

このmenu order属性を使用して、特定の目的に使用されるカスタム投稿タイプの順序を制御したいと思います。

これをCPTに追加するのは簡単supports => array('page-attributes')ですが、このCPTの管理者リスト画面でメニュー順序の値を公開するにはどうすればよいですか?

回答:


48

OK-結局、かなり単純であることが判明しました-何らかのメンタルブロック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

長すぎますが、記録のためだけに、「supports」オプション配列に「page-attributes」を含めるだけで、adminに「menu order」オプションを表示できます。例えば:

    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

カスタム投稿タイプのサポートにページ属性があります。これらのカスタム投稿タイプのいずれかを編集するとサイドバーにメニュー順序が追加されますが、wp adminでカスタム投稿タイプのすべてのアイテムのリストを表示するとメニュー順序列を表示します。表示するために必要なものは他にありますか?列の画面オプションでは、日付が唯一のオプションであり、チェックされています。
キチェラ

-3

CPTを以下で登録する必要があります。

'hierachical' => true

編集画面でアイテムの親を指定できるだけではありません-私はそれを試してみましたが、リスト画面に違いはありません
-anu

1
申し訳ありませんが、あなたはリストにカスタム列を追加したい実現していない...多分これは、起動するあなたにポイントを与える:shibashake.com/wordpress-theme/add-custom-post-type-columns
ungestaltbar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.