親の投稿タイプごとにアイキャッチ画像アップロード画面をコントロールしたい場合のメモ。

結論:media.php にGETで渡される ‘post_id’ は親の投稿ID。なので、そのIDから親の投稿タイプを判別する。

デフォルトの画面は高機能で、自分で使う分には申し分ないのだけれど、あまりPCに詳しくないユーザーさんがあれを見ると、入力項目が多すぎて辟易するはず。そして、データの項目名が汎用的な記述なので、いまひとつピンとくる文言になっていません。

たとえば、プロフィール用のカスタム投稿タイプをつくってアイキャッチ画像を使用したい場合、ユーザーさんのインターフェイスには、ファイルボタンと編集用のリンクだけあればOK。そして、少し気の利いた説明なんかも載せたいわけです。

そこで、入力画面が表示されるときに、その parent_post 専用の css や js を読み込ませたり、フィルターフックで項目名を変更したりしたい場合どうすればよいのか結構悩みました。で、結局、URLについてる post_id を使えばいいことがわかったのでメモ。

たとえば、http://www.example.com/wp-admin/media-upload.php?post_id=1234&type=image& というURLが、iframe の参照先にセットされている場合、この post_id=1234 というのは、今まさに編集中の「親」投稿IDです。私はこれになかなか気付けなく、無駄に数時間をつぶしてしまいました。(うっかり、メディアの投稿IDだと勘違いしていたのです)

なので、このIDから親投稿のpost_typeを調べて、それに応じて適宜アクションフックやフィルターフックにメソッドを引っ掛けていけばOK。

最初なんとなく簡単に出来そうなんだけど、どこかでちょっと方向を間違って泥沼にはまった挙句、たどり着いてみれば実にシンプルな話。WordPressでよくありがちなことでした。