manage_edit-post_columnsに関するメモ

悩み
悩み

必要があり参考情報を探した際に、気になる点があったのでメモとして。

英語がちゃんと読めれば問題にも感じないのでしょうが、そうでもないので一応記録として残す次第です。

manage_edit-post_columns

WdordPressの投稿一覧画面のテーブルへ任意の項目を追加する際に、manage_edit-post_columnsというフィルターフックを使うコードが散見されます。

日本語のコーデックスを見ても情報がありませんが、以下の英語版であれば情報があります。

ここで問題になるのは、上記ページ内に記載されている以下の一文です。

In WP 3.1, manage_edit-{$post_type}_columns has been supplanted by manage_{$post_type}_posts_columns.

WordPress3.1からはmanage_{$post_type}_posts_columnsに取って代わられているようです。

廃止とはかかれていませんし、現在でも動作はしていますが、manage_edit-post_columnsを使い続けていいものかどうか判断がつきませんでした。

manage_{$post_type}_posts_columnsを使う

manage_{$post_type}_posts_columnsを使う場合は、サンプルが前述のページから飛べる以下のページに記されています。


function add_book_columns($columns) {
    unset($columns['author']);
    return array_merge($columns, 
              array('publisher' => __('Publisher'),
                    'book_author' =>__( 'Book Author')));
}
add_filter('manage_book_posts_columns' , 'add_book_columns');

上記はbookというカスタムポストタイプ用のコードですが、このフィルター部分を以下のように変えれば通常の投稿や固定ページで使えます。
(add_book_columns($columns)の関数名や内容は適宜必要に応じて書き換えます)


add_filter('manage_book_posts_columns' , 'add_book_columns');
//↓
add_filter('manage_posts_columns' , 'add_book_columns');
//or
add_filter('manage_pages_columns' , 'add_book_columns');

manage_{$post_type}_posts_columnsで順序を操作する

前項のフックの内容では、ほぼ先頭(左端)に追加した項目が表示されることがあります。

位置を操作する場合は、フックの優先度を操作することである程度位置を動かせることを確認しました。


//投稿ページ
add_filter('manage_posts_columns' , 'add_book_columns', 20,1);
//固定ページ
add_filter('manage_pages_columns' , 'add_book_columns', 20,1);

優先度を明示しない場合は10が設定されますので、その位置よりも後ろ(右)に移動したいなら大きい数字を使えば実行順序が変わり位置も変わる、という発想です。

あくまで個人的な感想ですが、カラムの配列を再定義するやり方はリスキーかなと思ったので、この方法でできるならこちらの方がよいと考えています。

結び

色々手探りだったので、書いていることが間違っている場合は指摘いただければ助かります。

9人がこの記事を評価

役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。

連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。

コメント欄