wordpressでのスマホ対応webサイト制作・wpプラグイン・PHPプログラム・SNS活用・ 動画・bgmやテーマ曲アレンジまで考えるコラム!

WP管理画面を使いやすく~カスタムフィールド数値ソート・余計な余計な列を非表示(manage_edit-post_sortable_columnsフックなど)

      2020/09/19

こんにちは、管理人@SS_mshpです。

今回は、カスタムフィールド表示などをつけてごちゃごちゃしてきたWP管理画面を整理してつかいやすくします。

組み込みの『manage_edit-post_sortable_columns』などにフックをかける感じで、数値ソート・余計な列を非表示などをとりいれるカスタマイズを行っていきます。さっそくプログラムや表示例なども確認していきましょう。

今回の対応~たいして使いみちがなかったカスタムフィールド活用で、WP管理画面を使いやすく、かつ、余計な列は非表示

ではさっそく、今回のエディットで改善したいポイントを見ていきましょう。

つけるサイトは、管理人が以前つくった『ss-freemusic(著作権フリー曲サイト)』。最近では、音楽発信のプラットフォームというより、完全にWordPressサイト改造の被験者になっていますが(笑)、まあ大丈夫でしょう。


以前は『カスタムフィールドでBPMを管理・管理画面にも表示』というのをやりました。その影響で列が増えてしまい、『せまくなった分、タイトルが縦長で見にくい』みたいな問題がでました。これを解消しつつ、『カスタムフィールドに数値を使ったので、ソートもやってみる』という形で対応していきます。

WP管理画面カスタムフィールド数値ソート・余計な列を非表示

プログラム例(functions.php)

以前書いた『カスタムフィールドを管理画面に表示する』の続きです。『// *ソート可能に(manage_edit-post_sortable_columnsにフックかけてるところ)』から、今回追加した内容となります。functions.php内に記載しました。

ポイント~管理画面で記事を数値でソート(manage_edit-post_sortable_columns&request)

manage_edit-post_sortable_columns』は組み込みファンクションで、管理画面のエディットではよく使われます。ちなみに、カスタム投稿タイプのときは『manage_edit-〇〇〇(カスタム投稿スラッグ)_sortable_columns』となります。『post』は、通常の投稿のとき。

ここにフックをかけるとソートになりますが、基本的にうまくソートされないので、ソートのパラメータを次のファンクションで指定します。'meta_key' は、先日つくった、BGMのテンポを表す数値『bpm』、数値なので『'orderby' => 'meta_value_num'』とします(数値大小ソートのときは、numがないとうまくソートされません)。


これで、管理画面内『カスタムフィールド:bpm』の値で、ソートができるようになりました。パラメータが『orderby=bpm&order=asc』のときは、ゆっくりなBGMから表示。


逆にパラメータが『orderby=bpm&order=desc』のときは、速いBGMから表示していきます。いまのところ最速が208です。
『orderby』は、今回のカスタムフィールド数値のほか、『rand(ランダム)』『date(日付)』など、いろいろなソート方法があります。

使わない列は非表示に(manage_edit-post_columnsにフック)

あとは、使っていない列(今回のケースではcommentsやauthor)をunset(php上では、指定した変数の割当を解除)します。変数$columns を、commentsやauthorをunsetした状態でreturnという感じです。組み込みの、『manage_edit-post_column』に対してフィルターフックをかけます。


2つ列を削りましたが、縦長が解消されて、少し見やすくなりました。

参考リンク

以下の公式サイトを参考に組みました。『manage edit-post type columns』などについては、日本語のcodexにまとめ情報がないこともあるので、英語版サイトもご覧ください。管理画面のファンクションにもフックかけたりできると、ある程度WPで何でもできるようになります。また、WP Queryについても読んでおくと、パラメータなどが確認できるでしょう。

■Plugin API/Filter Reference/manage edit-post type columns
https://codex.wordpress.org/Plugin_API/Filter_Reference/manage_edit-post_type_columns

■関数リファレンス/WP Query
https://wpdocs.osdn.jp/関数リファレンス/WP_Query

あとがき・まとめ

  • manage_edit-post_sortable_columns&requestフックで、カスタムフィールド値でも管理画面内ソートができる
  • 数値でソートするときは、パラメーターに'orderby' => 'meta_value_num'
  • manage_edit-post_columnsフィルターフックで、使わない列は非表示にできる

まとめるとこんな形でしょうか。管理人の環境ではあまりメリットが出なかったけど、『商品やサービスのカタログみたいなサイト』などでは、使いこなすと管理がしやすくなるのではと思います。

*アトリエSS・web制作サービスページに移動します。webリニューアル・ロゴ・記事・wordpress化などでお力添えできます。

【カテゴリ】 - WordPress管理画面カスタマイズ
【タグ】 - , , ,

  関連記事

WP管理・投稿画面カスタマイズ~『p』『h2』みたいなタグ・定型文をボタン1つで記事に追加したい

今回は、以前サイト制作のお取引先さまと話した、WPの記事を投稿す ...

【WP管理画面カスタマイズ】ユーザーページに項目追加&そのフィールドを一覧に出す方法

今回は、以前お仕事で少しやったんですが、『会員・顧客』や『複数執 ...

【WPプラグイン無し】3行のコードで、ブロックエディタ&ブロックライブラリCSSを無効にする方法

今回は、管理人が『お取引先さまのwebサイトでブロックエディタま ...

All In One SEO Packの管理画面タイトル・概要カラムって消せる?→manage_edit-post_columnsフックで消せます

今回は、利用者の多いWordPressプラグイン『All In ...