カスタム投稿タイプ用に、Wordpress でいくつかのメタ フィールドを作成しました。それらは「価格」と「詳細」です。「投稿の編集」ページに移動し、これらのフィールドのいずれかを変更した後、ブラウザで「戻る」を押すか、ウィンドウを閉じてページを離れることにした場合、ブラウザから警告が表示されます」ページを離れてもよろしいですか?」「はい」を押すと、編集前に保存されていたものであっても、これら 2 つのフィールドにあるものはすべて消去されます。
なぜこれが考えられるのでしょうか?
functions.php のコードの一部を次に示します。
add_action("admin_init", "admin_init");
function admin_init()
{
add_meta_box("price", "Price", "price_field", "product", "normal", "high");
add_meta_box("details", "Details", "details_field", "product", "normal", "high");
}
function price_field()
{
global $post;
$custom = get_post_custom($post->ID);
$price = $custom["price"][0];
?>
<label>Price: $</label>
<input name="price" value="<?php echo $price; ?>" />
<?php
}
function details_field()
{
global $post;
$custom = get_post_custom($post->ID);
$details = $custom["details"][0];
?>
<label>Details:</label>
<input name="details" rows='5' value="<?php echo $details; ?>" />
<?php
}
/*--------------------------------*/
/* Save PRICE and DETAILS fields */
/*--------------------------------*/
add_action('save_post', 'save_details');
function save_details()
{
global $post;
update_post_meta($post->ID, "price", $_POST["price"]);
update_post_meta($post->ID, "details", $_POST["details"]);
}