My WP Customize Admin/Frontend のアップデートを行いました。 最新バージョンは 1.24.0 になります。 🙂
アップデート概要
- 投稿一覧やコメント一覧、メディア一覧、ユーザー一覧、ターム一覧のカラムで非推奨カラムと一部カラムの追加
- 投稿一覧やコメント一覧、メディア一覧、ユーザー一覧にて、一覧の検索ボックスの追加
詳細
一覧系の画面を主に更新しました。(実は、もう1機能追加したかったのですが、気力と体力と脳が疲れてきたので次回に延期しました 😳 )
非推奨カラムの追加について
My WP Customize Admin/Frontend 1.24.0 未満では非推奨カラムは1つも無かったのですが、1.24.0 から非推奨カラムを追加しました。今後の更新により、非推奨機能は削除していくつもりなので、なるべくお早めに非推奨カラムを使わないような設定をお願いします。 😛
非推奨カラムを追加した理由ですが、とても簡単に説明すると「あまり良くなかった方法でカスタマイズしていた為」です。 😐
詳細な説明を以下に記載しますので、興味のある方は良かったらどうぞ。 😉
一覧系のカラムのカスタマイズで、例えば「投稿のID」をタイトルカラムの前に追加して表示させたい場合、
上記スクリーンショットのような感じで、My WP Customize Admin/Frontend で予め用意されている「id」というカラムを追加すれば、投稿一覧のタイトルの前に該当の投稿 ID が表示される仕組みでした。
この「id」というカラムなどが「あまり良くなかった方法」になるため、一部のカラムの利用を My WP Customize Admin/Frontend 1.24.0 から非推奨にしました。
(非推奨としているだけなので、動作自体はします)
「あまり良くなかった方法」についてですが、もう少し説明にお付き合いお願いします。。。 😥
現在最新版のWP 6.6では(古いバージョンでも一緒だと思いますが)、カラムを追加した際、該当カラムの内容(今回の場合だと投稿ID)を表示する為に、WordPress のフック(manage_posts_custom_column)を用いて表示させる方法でカスタマイズしているのですが、このフックがフィルターではなくアクション(do_action)なので、同じカラム名へのフックが複数ある場合、同じ内容がそのフックの数の分だけ表示されてしまう(重複)、という現象がありました。
上のスクリーンショットで投稿のIDが「11」と表示されていますが、本当の投稿IDは「1」です。重複して2回出力されてしまった状態のため、「1」と「1」が隙間なく表示されているため「11」に見える状態です。
じゃあ、どういう時にこうなるのかというと、
- Aというプラグイン又はテーマが、カラムに「id」を追加し、idカラムの表示で投稿のIDを表示させる
- Bというプラグイン又はテーマが、カラムに「id」を追加し、idカラムの表示で投稿のIDを表示させる
と、プラグインやテーマのカスタマイズで、カラムの内容出力が重複するため、Aというプラグインで投稿ID「1」を表示、Bというプラグインで投稿ID「1」を表示、2つ合わせて「11」という現象になります。
(「タイトル」「日付」などのヘッダーのカラムの追加は、アクションではなくフィルターなので、同じカラムが存在すれば上書き、等の処理になると思いますが、各投稿の行のコンテンツカラムについては、フィルターではなくアクションフックのため、フックされている数の分だけ実行されます)
My WP Customize Admin/Frontend では、この現象を何とかする為に「カラムの内容を自動出力」という機能を用いて、もし他のプラグインやテーマ等が同じカラム名でカラムの内容出力を行っていれば、My WP Customize Admin/Frontend ではカラムの内容出力をしない、と、WordPress をカスタマイズする方自身が選択できるようにしていました。
していましたが。。。すごく。。。。分かりづらい。(自分でも思うのですが) 🙄
そして、1.24.0 からは別の方法で解決できたと思われるので非推奨にしました。
新しい解決方法の考え方としては、
- Aというプラグインが、カラムに「id」を追加し、投稿のIDを表示させる
- Bというプラグイン(My WP Customize Admin/Frontendと仮定します)が、カラムに「mywp_column_id」を追加し、投稿のIDを表示させる
と、どちらも投稿のIDを表示、と、やっている事はほぼ同じですが、他のプラグインやテーマ等が行っているカラムのカスタマイズ(カラム名)が重複することが原因だったため、重複しないようなカラム名にする。という方法です。
今までの解決法は、重複は避けられない、という前提で、My WP Customize Admin/Frontend でカラムの内容を表示をする or しないを選択できるようにしていたのですが、そもそも重複を避ける工夫を行いました。
そのため、重複しそうな単純なカラム名はすべて、非推奨としました。(非推奨はそのうち削除すると思います)
一覧画面での検索ボックスの追加
WordPressの管理画面の検索、だいぶ以前からずっと使いづらいなぁ~と思っていました。
デフォルトで「日付」と「カテゴリ一覧」の2つと、言葉の入力で「投稿を検索」の計3つ。(投稿を検索って、タイトルだけの検索だっけ??ってなりますよね。 🙄 ん?ならない? )
それをもっと拡張しようと思ったら、「restrict_manage_posts」にフックをかけて、日付やカテゴリ一覧の隣に、カスタムフィールドで検索できるようしたり~等の方法が一般的かなと思うのですが、そもそも、それも使いづらい。
かといって、管理画面の投稿一覧等の検索で、いい感じのプラグインなんて分からない。
一覧テーブルの上に、いい感じでいろんな検索ができるボックス?を表示させたいんだけど、そもそもそこにまともなフックが見当たらない。。。 🙄
使いやすいほうがいいんだけどなぁ。でも、自分で作るのめっちゃ手間掛かる。。。他のプラグイン作者が作ってくれればありがたいなぁ~
そんななか、とあるWordPressを使ったサイトで、管理画面の検索を導入せざるを得なくなったので、何とか方法を考えて検索機能を追加しました。
いまはまだ、基本項目しか検索できないし、投稿ステータスもすべての投稿タイプの中から選択できてしまうので、まだ使いやすいとは言えませんが、フィルターフック(mywp_controller_admin_posts_custom_search_filter_fields-{post_type} 等)でご自身で検索項目を拡張することができるようにしました。
(フックの使い方のサンプル等はそのうちドキュメントに追記します)
Advanced Custom Fields や WooCommerce を使っている場合、検索をもっと拡張させたいと思っていますが、開発に時間も掛かるし、脳もいっぱいいっぱいだし、そろそろ夕飯も作らないといけないし。。。 🙄
なので、とりあえず、今回のリリース(1.24.0)はここまで、としました。
今回の機能開発は結構疲れました。。。 😆
アップデートの説明は以上です。ここまでお読みくださりありがとうございます。 😀
コメントを残す