あまり需要は無いかもしれませんが・・・
管理画面の投稿一覧の項目を追加したり削除したりすると、並び順も変更したくなることが稀にあります。
そんな時のために以下のようなコードを考えてみました。以下をfunctions.phpに貼り付けます。
function custom_posts_columns_sort($columns){
$sort_number = array(
'cb' => 0,
'title' => 1,
'author' => 2,
'categories' => 3,
'tags' => 4,
'comments' => 5,
'date' => 6
);
$sort = array();
foreach($columns as $key => $value){
$sort[] = $sort_number{$key};
}
array_multisort($sort,$columns);
return $columns;
}
add_filter( 'manage_posts_columns', 'custom_posts_columns_sort' );
カラムの順序は$sort_numberのarray内の数値で指定します。もしカラムを追加している場合には『’(カラム名)’ => (順序)』の形式でarrayに値を追加するだけです。
↓こんな感じ。
$sort_number = array(
'cb' => 0,
'title' => 1,
'author' => 2,
'categories' => 3,
'tags' => 4,
'comments' => 5,
'date' => 6,
'column1' => 7, // 追加したカラム
'column2' => 8 // 追加したカラム
);
ちなみに引数の$columnsの中身は以下のような状態です。
$columns['cb'] : チェックボックス
$columns['title'] : タイトル
$columns['author'] : 作成者
$columns['categories'] : カテゴリー
$columns['tags'] : タグ
$columns['comments'] : コメント
$columns['date'] : 日付
あまり需要はないとは思いますが、クライアントワークでは使えるかもしれませんね。(というか、最近使いました。)
ピンバック: 備忘録:管理者画面のカラムをソートする方法 | LISSUS