Home > 未分類 > Custom Field GUI Utility SLUG をカスタム投稿タイプで使う
Custom Field GUI Utility SLUG をカスタム投稿タイプで使う
WordPressの投稿画面にカスタムフィールドの入力欄を作る「Custom Field GUI」ってプラグインをより使いやすくカスタマイズした「Custom Field GUI Utility」ってプラグインをカテゴリごとに表示するカスタムフィールドを切り替えやすいようにカスタマイズした「Custom Field GUI Utility SLUG」ってプラグインをカスタム投稿タイプごとに表示するカスタムフィールドを切り替えられるようにカスタマイズしてみました。(長い)
できた、ってだけで検証とかもちゃんとやってないのでプラグインとして発表できるレベルではないので(僕の環境で動作した)やり方だけご紹介。
きっかけはCustom Field GUI Utility SLUGの紹介ページでのコメント
私はカテゴリ毎に切り替える必要がなく、カスタム投稿タイプ毎に切り替えをしたかったので
function insert_gui() とfunction edit_meta_value() のカテゴリを取得しているところを
get_the_categoryではなくget_post_typeで投稿タイプを取得することで解決できました。
やってみました。
「cfg-utility-slug.class.php」の210行目ぐらい
1 2 3 | foreach((get_the_category()) as $category) { $slug = $category->slug; } |
を
1 | $slug = get_post_type(); |
に変更。260行目ぐらいの
1 2 3 | foreach((get_the_category($_REQUEST['post_ID'])) as $category) { $slug = $category->slug; } |
を
1 | $slug = get_post_type($_REQUEST['post_ID']); |
に変更しました。
foreachはよくわかりませんが、あるとエラーが出たので消しました。
そうすると、「conf-post.ini」と「conf-page.ini」で表示するカスタムフィールドを切り替えることができたんですが、「conf-hoge.ini」みたいなカスタム投稿タイプではカスタムフィールドの入力欄が出ない。
しばらくソースコードを探した結果、「cfg-utility-slug.php」の85行目くらい
1 2 3 4 5 |
ってとこを
1 2 3 4 5 6 7 8 | /* post */ add_meta_box('cfg_utility', $box_name, array('cfg_utility_slug_class', 'insert_gui'), 'post', 'normal', 'high'); /* page */ add_meta_box('cfg_utility', $box_name, array('cfg_utility_slug_class', 'insert_gui'), 'page', 'normal', 'high'); /* hoge */ add_meta_box('cfg_utility', $box_name, array('cfg_utility_slug_class', 'insert_gui'), 'hoge', 'normal', 'high'); |
みたいに投稿タイプを追加したら無事表示されるようになりました。
これだとカスタム投稿タイプの種類が増えるたびに追加していかなあかんからほんまは投稿タイプを全部取得してループで処理する、みたいにやったほうがいいんでしょうが、めんどくさいしそんなにカスタム投稿タイプの種類を増やすこともないからま、いっか、ってなりました。
てか、こないだのCSV Importerのときみたいにそのうちプラグインのバージョンアップでデフォルトで対応するようになるやろうし。
Comments: 0
Trackbacks:0
- Trackback URL for this entry
- http://blog.solid-peat.com/2010/08/28/custom_field_gui_utility_slug_custom_post_type/trackback/
- Listed below are links to weblogs that reference
- Custom Field GUI Utility SLUG をカスタム投稿タイプで使う from Solid Peat
