0
我有以下代碼,它將自定義元框添加到wordpress頁面,但由於某種原因它不會保存選定的選項。任何想法什麼是錯的?WordPress自定義元框不會保存
謝謝。
// Add Header Select Option MetaBox
function alfie_header_select_meta() {
add_meta_box('alfie_header_select_meta', __('Header Style', 'alfie'), 'alfie_header_select_meta_callback', 'page', 'side');
}
add_action('add_meta_boxes', 'alfie_header_select_meta');
function alfie_header_select_meta_callback($post) {
$values = get_post_custom($post->ID);
$selected = isset($values['alfie_selected_header']) ? esc_attr($values['alfie_selected_header'][0]) : 」;
wp_nonce_field('alfie_header_select_meta_nonce', 'alfie_header_select_meta_nonce');
?>
<p>
<select name="alfie_selected_header" id="alfie_selected_header">
<option value="alfie-header-default" <?php selected($selected, 'default'); ?>>Default</option>
<option value="alfie-header-style-minimal" <?php selected($selected, 'minimal'); ?>>Minimal</option>
<option value="alfie-header-test" <?php selected($selected, 'test'); ?>>Just a test option</option>
</select>
</p>
<?php
}
function alfie_meta_save($post_id) {
$is_autosave = wp_is_post_autosave($post_id);
$is_revision = wp_is_post_revision($post_id);
$is_valid_nonce = (isset($_POST[ 'alfie_header_select_meta_nonce' ]) && wp_verify_nonce($_POST[ 'alfie_header_select_meta_nonce' ], basename(__FILE__))) ? 'true' : 'false';
if ($is_autosave || $is_revision || !$is_valid_nonce) {
return;
}
if(isset($_POST[ 'alfie_selected_header' ])) {
update_post_meta($post_id, 'alfie_selected_header', sanitize_text_field($_POST[ 'alfie_selected_header' ]));
}
}
add_action('save_post', 'alfie_meta_save');
它可能在alfie_meta_save()中的自動保存/隨機檢查中。你是否看到代碼是否在該塊之後運行?你應該測試一下,看看。 – Kris
對不起,我該怎麼做? –
其中一個想法是在if塊後面保存一個默認元,並檢查它是否被添加進去。 – Kris