【WordPress】管理画面で、タクソノミーやカスタムフィールドの列を追加する(ソート機能付き)

投稿日:2017年2月27日

170228wp

WordPressのカスタマイズをしていて、管理画面の投稿一覧の使い勝手も向上させたい!と思う時ってありますよね。
ポイントとなる項目を一覧で見ることができるだけで、かなり管理画面が便利になりますが、それにソート機能や絞り込み機能をつけることができると、なお良いですよね。

そこでこの記事ではWordPressの管理画面をより便利にするタクソノミーやカスタムフィールドの列を追加する方法について、基本の書き方の説明と、実装例を記載しています。
【例】タクソノミーを投稿一覧に表示して、絞り込み機能をつける
【例】カスタムフィールドを投稿一覧に表示して、ソート機能をつける
【例】IDをタクソノミー一覧に表示して、ソート機能をつける

wp_admin_list_columns_03

基本の書き方

まず、管理画面の投稿一覧またはタクソノミー一覧に対して、以下のそれぞれの基本の書き方について説明します。
1.列を追加する
2.内容を表示する
3.ソート機能をつける
4.絞り込み機能をつける

初期状態
wp_admin_list_columns_05

1.列を追加する

列を追加するのは以下のコードだけなのでシンプルです。
my_column_name」は他と被らないものにする必要があります。

wp_admin_list_columns_07

2.内容を表示する

内容を表示するのは、「カスタム投稿一覧」の時と、「タクソノミー一覧」の時では少し違いますので、注意が必要です。

カスタム投稿一覧の時

ここでは、カスタムフィールド「comment_group」の値を表示しようとしています。
my_column_name」は上記で指定したものと同じ名前にする必要があります。

「my_add_columns_content」の第二引数「$post_id」には投稿IDが入ってきますので、それを使っていろんな値をとることができます。

タクソノミー一覧の時

タクソノミーIDを表示させる、という内容です。

タクソノミー一覧の場合は第三引数にタクソノミーIDが入ってきます。
「add_action」の指定のときに、「…, 10, 3 );」という風に第三引数まで取るように指定するのを忘れずに。
wp_admin_list_columns_08

3.ソート機能をつける

投稿の基本項目(ID, slugなど)ならソート機能をつけるのは簡単です。以下のコードだけでOKです。

「… = ‘ID’;」の部分は、WP_Queryのソートで用いることのできる指定ならOKです(関数リファレンス参照)。

カスタムフィールドの値などによるソートを行う場合は、もう少し複雑です。
カスタムフィールドのどの項目でソートするのかを明示しないといけません。

カスタムフィールド「comment_group」の数でソートする、というケースです。

4.絞り込み機能をつける

さきほどは、ソート機能をつけるやり方について説明しましたが、実は、一覧にタクソノミーを表示させる場合、ソートができません。
なぜなら、関数リファレンスのソートの説明を見ると分かりますが、タクソノミーでソートする記述方法がそもそもないからです。
ですから、タクソノミーには「ソート機能」ではなく「絞り込み機能」をつけてやります。

コメント数はカスタムフィールドなのでソート機能を、タクソノミーには絞り込み機能をつけたwp_admin_list_columns_09

以上を踏まえた実装例を以下で記載します。何かの参考にしていただければ幸いです。

【例】タクソノミーを投稿一覧に表示して、絞り込み機能をつける

【例】カスタムフィールドを投稿一覧に表示して、ソート機能をつける

【例】IDをタクソノミー一覧に表示して、ソート機能をつける

南本貴之

関連記事

カテゴリー: PHP, WordPress, サイト制作
  • LINEスタンプ販売中!「カフィーノ♪」 BRISKオリジナル
社内写真