WordPressスマホ対応サイト・wpプラグイン・検索体験最適化・SNS・ 動画・bgmやテーマ曲を駆使して、リアルビジネスへの集客を達成するためのコラム!

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

   

こんにちは、管理人@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化などでお力添えできます。

【カテゴリ】 - webサイト制作 【タグ】 - ,

  関連記事

別ディレクトリでの記事の管理・表示を、1つのWordPressを使いまわして対応する方法(プラグイン無しカスタム投稿・wp-blog-header.php)

今回は、別ディレクトリのコーポレート・お仕事サイトの記事管理も、1つのW …

【ユーザーデータ取得】WordPress定義済み関数の『get_userdata()』『wp_get_current_user()』ってどのように違うの?

今回は、WPシステムのwebサイト制作などでちょくちょくお目にかかる、W …

WordPressサイトに、Microsoft Azureを使って、シングルサインオン機能(パスワードベース・プラグイン無し)を実装してみる

今回は、管理するサイトが増えてきて、『id/pass管理めんどくせ~』っ …

【METAタグで新サイトに転送】meta http-equiv=”refresh”で転送・WPサイトでの活用・301リダイレクトとの使い分けとは?

今回は、管理人がネットサーフィンしていて見つけた、サイトの転送&活用テク …

【WordPress2019公式テーマ】Twenty Nineteenってどう?→文字デカすぎ&PCも1カラムは難点・ブロックエディタとの親和性はok

今回は、WordPressバージョン5以上に更新したら勝手についてきた、 …

侍エンジニア塾ブログにあったPHPコードをシンプルに書いてみる(foreachで配列キーや値取得・continueで空要素スキップ)

今回は、(自分もまだプログラム学習中の身ですが)よくある『プログラム学習 …

【PHPでWPカスタマイズ】プラグイン不使用で、テーマに関連記事表示機能を実装しPV・滞在時間を上げる

今回は、サイトをしっかり見てもらうために、『WordPressサイトに、 …