#wordpressの投稿ページにカスタムフィールドを設置した。
functions.php
function add_sample_fields() { add_meta_box( 'sample_setting', 'サンプルのフィールド', 'insert_sample_fields', 'post', 'normal'); } add_action('admin_menu', 'add_sample_fields'); function insert_sample_fields() { global $post; $output = '<div>'; $output .= '<input type="text" name="sample_name" value="'. get_post_meta($post->ID,'sample_name',true) .'">'; $output .= '</div>'; echo $output; } function save_sample_fields( $post_id ) { if(!empty($_POST['sample_name'])){ update_post_meta($post_id, 'sample_name', $_POST['sample_name'] ); }else{ delete_post_meta($post_id, 'sample_name'); } } add_action('save_post', 'save_sample_fields');
single.php
<div><?php echo get_post_meta($post->ID,'sample_name',true); ?></div>
このような感じで投稿ページの下部にカスタムフィールドが作成された。
##今回困ったこと
カスタムフィールドに値を入れ公開ボタンを押しページを確認したところ問題なくできていた。
しかし、修正したいと思いカスタムフィールドを入力し直してプレビューを確認したのだが
プレビュー画面では何も表示されない。
しかも本番の値までも変わってしまった。
参考にしたページ
https://www.warna.info/archives/2502/
ここら辺が参考になるかと思ったのだがプラグインを使用している場合だったので解決できなかった。
##試したこと
save_sample_fieldsの中の処理で
delete_metaを削除してみたがうまくいかなかった。。。
本番の値が変わったというのは、プレビューと同じ空になったということでしょうか。
あなたの回答
tips
プレビュー