我創建了一個自定義元框,您可以從某些單選按鈕中選擇一個值並將其保存到wordpress數據庫中的post_meta表中。用下面的代碼保存我的價值:如何設置自定義元框中的單選按鈕被選中?
function save_value_of_my_custom_metabox ($post_id, $post){
$post_id = get_the_ID();
$new_meta_value = (isset($_POST['the_name_of_the_radio_buttons']) ? sanitize_html_class($_POST['the_name_of_the_radio_buttons']) : '');
$meta_key = 'my_key';
update_post_meta($post_id, $meta_key, $new_meta_value);
}
但如果職位將被再次編輯我要與當前值的單選按鈕來設置檢查。什麼是最好的方式來做到這一點?這裏是顯示元框的功能:
function my_custom_meta_box($object, $box) {
$post_id=get_the_ID();
$key='my_key';
$the_value_that_should_be_set_to_checked=get_post_meta($post_id, $key);
//$the_value_that_should_be_set_to_checked[0] returns the value as string
?>
<label for="my_custom_metabox"><?php _e("Choose value:", 'choose_value'); ?></label>
<br />
<input type="radio" name="the_name_of_the_radio_buttons" value="value1">Value1<br>
<input type="radio" name="the_name_of_the_radio_buttons" value="value2">Value2<br>
<input type="radio" name="the_name_of_the_radio_buttons" value="value3">Value3<br>
<input type="radio" name="the_name_of_the_radio_buttons" value="value4">Value4<br>
<?php
}
我可以寫類似if(isset($the_value_that_should_be_set_to_checked[0])=="value of that line") echo "checked='checked'";
中的每一行,但似乎並不很優雅給我。在WordPress中使用javascript也非常複雜,因爲我必須使用鉤子,排隊腳本,只是用一行javascript來更改checked屬性,這不值得。最佳做法是什麼?
提供您使用的動作鉤子。 – 2014-08-27 08:32:42
add_action('load-post.php','my_custom_meta_box_setup'); add_action('load-post-new.php','my_custom_meta_box_setup');並在設置函數中:add_action('add_meta_boxes','my_custom__meta_box');和add_action('save_post','save_value_of_my_custom_metabox',10,2); – user2718671 2014-08-27 08:38:15