プラグインを使わずにカスタムフィールドを設定する
Advanced Custom Fieldsとの併用も可能。
入力項目に変数を用いる場合などのカスタムに使用。
<?php add_action('admin_menu', 'add_weather'); add_action('save_post', 'save_weather'); function add_weather(){ if(function_exists('add_weather')){ add_meta_box('weather1', '天気', 'insert_weather', 'post', 'normal', 'high'); } } function insert_weather(){ global $post; wp_nonce_field(wp_create_nonce(__FILE__), 'my_nonce'); echo '<label class="hidden" for="weather">天気</label><input type="text" name="weather" size="60" value="'.esc_html(get_post_meta($post->ID, 'weather', true)).'" />'; echo '<p>作成した日の天気を入力します。</p>'; } function save_weather($post_id){ $my_nonce = isset($_POST['my_nonce']) ? $_POST['my_nonce'] : null; if(!wp_verify_nonce($my_nonce, wp_create_nonce(__FILE__))) { return $post_id; } if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } if(!current_user_can('edit_post', $post_id)) { return $post_id; } $data = $_POST['weather']; if(get_post_meta($post_id, 'weather') == ""){ add_post_meta($post_id, 'weather', $data, true); }elseif($data != get_post_meta($post_id, 'weather', true)){ update_post_meta($post_id, 'weather', $data); }elseif($data == ""){ delete_post_meta($post_id, 'weather', get_post_meta($post_id, 'weather', true)); } } ?>
表示にはget_post_metaを用いる
<?php echo get_post_meta( $post->ID , 'weather' , true ); ?>
参考サイト
-
前の記事
Advanced Custom FieldsのアドオンRepeater Fieldの出力メモ 2017.10.22
-
次の記事
youtubeの埋め込みをレスポンシブにする 2017.10.26