先日記事にしましたHUNTER用のfunctions.phpで、
更新する度にアマゾンのコードが消えるという不具合を頂きました。
申し訳ありません。
以下、修正しまいしたのでfunctions.phpの該当箇所を差し替えて下さいませ
※一応、当方ではチェックしておりますが必ずバックアップの上、自己責任で何卒ご利用下さい。また、先に書いたHUNTER用のamazonコードはおそらく消えるかと思いますのでお手数ですが再度記載して下さい。
該当箇所(※記事を見てコード追記された方はコメントが削除されています。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
/*投稿ページ等への投稿ページを追加するためのアクションフック*/ add_action('admin_menu', 'add_custom_inputbox'); /*追加した表示項目のデータ更新・保存のためのアクションフック*/ add_action('save_post', 'save_custom_postdata'); /*入力項目がどの投稿タイプのページに表示されるのかの設定*/ function add_custom_inputbox() { add_meta_box( 'myid','amazonコード等', 'custom_area', 'post', 'normal' ); } /*実際、管理画面に表示される内容*/ function custom_area(){ //これがないと入力欄が更新されない! global $post; echo '<p>タイトル</p><textarea rows="4" cols="40" name="amazontitle" value="'.get_post_meta($post->ID,'amazontitle',true).'"></textarea>'; echo '<p>画像</p><textarea rows="4" cols="40" name="amazonimg" value="'.get_post_meta($post->ID,'amazonimg',true).'"></textarea>'; } /*投稿ボタンを押した際のデータ更新と保存*/ function save_custom_postdata($post_id){ //amazontitle if(isset($_POST['amazontitle'])) { $amazontitle = $_POST ['amazontitle']; } else{$amazontitle=''; } //-1になると項目が変わったことになるので、項目を更新する if( strcmp($amazontitle,get_post_meta($post_id, 'amazontitle', true)) != 0 ){ update_post_meta($post_id, 'amazontitle',$amazontitle); }elseif($amazontitle == ""){ delete_post_meta($post_id, 'amazontitle',get_post_meta($post_id,'amazontitle',true)); } //amazonimg if(isset($_POST['amazonimg'])){$amazonimg=$_POST['amazonimg'];} else{$amazonimg='';}; if( strcmp($amazonimg,get_post_meta($post_id, 'amazonimg', true)) != 0 ){ update_post_meta($post_id, 'amazonimg',$amazonimg); }elseif($amazonimg == ""){ delete_post_meta($post_id, 'amazonimg',get_post_meta($post_id,'amazonimg',true)); } } |
変更コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
function add_my_box() { add_meta_box('meta_info', 'amazonアソシエイトコード', 'meta_info_form', 'post', 'normal', 'high'); //カスタム投稿タイプに追加する場合 add_meta_box('meta_info', 'amazonアソシエイトコード', 'meta_info_form', 'amazon', 'normal', 'high'); } add_action('add_meta_boxes', 'add_my_box'); function meta_info_form() { global $post; wp_nonce_field(wp_create_nonce(__FILE__), 'my_nonce'); ?> <div id="meta_info"> <p><label>amazonタイトル<br /> <input type="text" name="amazontitle" value="<?php echo esc_html(get_post_meta($post->ID, 'amazontitle', true)); ?>" style="width:80%" /> </label></p> </div> <p><label>amazon画像<br /> <input type="text" name="amazonimg" value="<?php echo esc_html(get_post_meta($post->ID, 'amazonimg', true)); ?>" style="width:80%" /> </label></p> <?php } function my_box_save($post_id) { global $post; $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; } if($_POST['post_type'] == 'amazon'){ update_post_meta($post->ID, 'amazontitle', $_POST['amazontitle']); update_post_meta($post->ID, 'amazonimg', $_POST['amazonimg']); } if($_POST['post_type'] == 'post'){ update_post_meta($post->ID, 'amazontitle', $_POST['amazontitle']); update_post_meta($post->ID, 'amazonimg', $_POST['amazonimg']); } } add_action('save_post', 'my_box_save'); |
もし、また不具合出たら教えて下さい&ご容赦ください・・・
ちなみにこちらの記事を参考にさせて頂きました。
ありがとうございます。