我已經在wordpress插件中創建了自定義帖子類型。在自定義文章類型中,是一些自定義元文件 - 在我的自定義元文件中,我有一個無線電輸入。WordPress的自定義帖子類型保存無線電輸入元
我遇到的問題是將此無線電輸入的選擇保存到數據庫中。每當我點擊保存,它就會忘記選擇。
這是我爲我的metaboxes代碼:
function render_meta_boxes($post) {
$meta = get_post_custom($post->ID);
$name = ! isset($meta['singer_name'][0]) ? '' : $meta['singer_name'][0];
$tagline = ! isset($meta['singer_tagline'][0]) ? '' : $meta['singer_tagline'][0];
$bio = ! isset($meta['singer_bio'][0]) ? '' : $meta['singer_bio'][0];
$gender = ! isset($meta['singer_gender'][0]) ? '' : $meta['singer_gender'][0];
wp_nonce_field(basename(__FILE__), 'singer_profile');
?>
<table class="form-table">
<tr>
<td class="singers_meta_box_td" colspan="2">
<label for="singer_name"><?php _e('Singer Name', 'singers_post_type'); ?>
</label>
</td>
<td colspan="4">
<input type="text" name="singer_name" class="regular-text" value="<?php echo $name; ?>">
</td>
</tr>
<tr>
<td class="singers_meta_box_td" colspan="2">
<label for="singer_tagline"><?php _e('Singer Tagline', 'singers_post_type'); ?>
</label>
</td>
<td colspan="4">
<input type="text" name="singer_tagline" class="regular-text" value="<?php echo $tagline; ?>">
</td>
</tr>
<tr>
<td class="singers_meta_box_td" colspan="2">
<label for="singer_bio"><?php _e('Singer Bio', 'singers_post_type'); ?>
</label>
</td>
<td colspan="4">
<textarea rows="10" style="width:25em;" name="singer_bio" class="regular-text"><?php echo $bio; ?></textarea>
</td>
</tr>
<tr>
<td class="singers_meta_box_td" colspan="2">
<label for="singer_gender"><?php _e('Gender', 'singers_post_type'); ?>
</label>
</td>
<td colspan="4">
<input type="radio" name="singer_gender" value="male"> Male<br>
<input type="radio" name="singer_gender" value="female"> Female
</td>
</tr>
</table>
<?php }
/**
* Save metaboxes
*
* @since 0.1.0
*/
function save_meta_boxes($post_id) {
global $post;
// Verify nonce
if (!isset($_POST['singer_profile']) || !wp_verify_nonce($_POST['singer_profile'], basename(__FILE__))) {
return $post_id;
}
// Check Autosave
if ((defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) || (defined('DOING_AJAX') && DOING_AJAX) || isset($_REQUEST['bulk_edit'])) {
return $post_id;
}
// Don't save if only a revision
if (isset($post->post_type) && $post->post_type == 'revision') {
return $post_id;
}
// Check permissions
if (!current_user_can('edit_post', $post->ID)) {
return $post_id;
}
$meta['singer_name'] = (isset($_POST['singer_name']) ? esc_textarea($_POST['singer_name']) : '');
$meta['singer_bio'] = (isset($_POST['singer_bio']) ? esc_textarea($_POST['singer_bio']) : '');
$meta['singer_tagline'] = (isset($_POST['singer_tagline']) ? esc_textarea($_POST['singer_tagline']) : '');
$meta['singer_gender'] = (isset($_POST['singer_gender']) ? sanitize_html_class($_POST['singer_gender']) : '');
foreach ($meta as $key => $value) {
update_post_meta($post->ID, $key, $value);
}
}
你可以看到無線輸入只是男性和女性的選項,然後在腳本的底部是在節省處理。我不知道如何做出選擇保存。