カスタムフィールドの入力画面をカスタマイズしたい。
Posted on October 1st, 2008 [ Last update date October 3rd, 2008 at 12:33 am ]
カテゴリーの違いにより使用するカスタムフィールドを変更したい、WordPressのカスタムフィールドを便利に使うプラグインとして以前 Custom Field GUI Utilityを紹介しましたが、カスタムフィールドの入力欄が縦にいたずらに長くなるばかりです。
未だにどのファイルを修正すれば投稿画面を変更できるのかもわからず、ましてコアファイルは修正したくはありません。
今回、ページでのカスタムフィールドは必要ないので、前出のプラグインのオリジナルの Custom Field GUIを使用しを検討してみます。
このプラグインで書き出されるカスタムフィールドの入力欄はテーブルで配置されているのは投稿画面のソースから確認できるので、rc-custom-field-gui.class.phpのファイルでテーブル要素の開始タグが出現する前とテーブル要素の終了タグの出現後なら、投稿ページを若干カスタマイズできると判断しテーブル要素の前に見出し要素を追加してみました。ちなみにテーブル要素の開始タブは151行目で $outに代入されてます。
$out .= '<h3>○○カテゴリー用の入力欄</h3>';
$out .= ‘<table class="editform">’;
しかし、これでは1つのテーブルに1つの見出しがついただけで、何の解決にもなりませんそこで WordPressに読み込ませるカスタムフィールド用のファイルを複数用意する事にし、それぞれ見出しを用意すれば多少入力フォームにめりはりがつきます、そこで rc-custom-field-gui.phpファイルの修正です。
include_once( 'rc-custom-field-gui.class.php‘ );
add_action( ’simple_edit_form’, array( ‘rc_custom_field_gui‘, ‘insert_gui’ ) );
add_action( ‘edit_form_advanced’, array( ‘rc_custom_field_gui‘, ‘insert_gui’ ) );
add_action( ‘edit_post’, array( ‘rc_custom_field_gui‘, ‘edit_meta_value’ ) );
add_action( ’save_post’, array( ‘rc_custom_field_gui‘, ‘edit_meta_value’ ) );
add_action( ‘publish_post’, array( ‘rc_custom_field_gui‘, ‘edit_meta_value’ ) );
上記のコードを複製し「rc-custom-field-gui.class.php」の部分を外部に用意したファイル名に変更し「rc_custom_field_gui」の部分をそのファイルで定義されているクラス名に変更します。
またクラス名を定義したファイル内でも数カ所でその名前を参照しますので全ての名前、15カ所を書き換えます。
せっかくなのでもうひと頑張り個別に分けたカスタムフィールドを折り畳めるように修正します。先ほど修正をした rc-custom-field-gui.class.phpのファイルのテーブル要素の前に追加した見出し要素部分を以下のように修正します。
$out .= '<div id="任意のID名" class="postbox if-js-closed"> ';
$out .= ‘<h3>○○カテゴリー用の入力欄</h3><div class="inside">’;
$out .= ‘<table class="editform">’;
テーブル要素の終了タグのあとにDIV要素の終了タグも追加します。
$out .= '</table>';
$out .= ‘</div></div>’;


ちなみに、テーブルへのデザインは wp-admin/wp-admin.cssファイルを修正しています。
