完成イメージ
作業内容
functions.phpに、以下の記述を追加する。
形式・パラメータの詳細は、下記のリファレンスを参照。
カスタムフィールドボックスを追加表示
function add_item_fields() { add_meta_box( 'item_setting', '見出し', 'insert_item_fields', 'スラッグなど', 'normal'); } add_action('admin_menu', 'add_item_fields');
カスタムフィールドボックスの中に入力項目を表示
(テキスト)
function insert_item_fields() { global $post; echo '項目1: <input type="text" name="item-1" value="'.get_post_meta($post->ID, 'item-1', true).'" size="100" /><br><br>'; echo '項目2: <input type="text" name="item-2" value="'.get_post_meta($post->ID, 'item-2', true).'" size="100" /><br><br>'; }
(チェックボックス)
if( get_post_meta($post->ID,'item_c-1',true) == "is-on" ) { $item_label_check = "checked"; } echo 'チェック項目: <input type="checkbox" name="item_c-1" value="is-on" '.$item_label_check.' ><br><br>';
カスタムフィールドボックスの中身を保存
function save_item_fields( $post_id ) { if(!empty($_POST['item-1'])){ update_post_meta($post_id, 'item-1', $_POST['item-1'] ); }else{ delete_post_meta($post_id, 'item-1'); } if(!empty($_POST['item-2'])){ update_post_meta($post_id, 'item-2', $_POST['item-2'] ); }else{ delete_post_meta($post_id, 'item-2'); } if(!empty($_POST['item_c-1'])){ update_post_meta($post_id, 'item_c-1', $_POST['item_c-1'] ); }else{ delete_post_meta($post_id, 'item_c-1'); } } add_action('save_post', 'save_item_fields');
関数:update_post_meta、delete_post_meta
関数リファレンス/update post meta
関数リファレンス/delete post meta
アクションフック:save_post
プラグイン API/アクションフック一覧/save post