2014-09-04 63 views
0

我正在爲頁面創建一個自定義的元框。這個metabox的主要功能之一是能夠在Revolution Slider中調用。在這一點上,我可以創建一個下拉菜單,顯示所有已創建的revsliders,但我無法保存並調用它們。下面是我的代碼,也許有人可以告訴我我做錯了什麼。無法保存修改滑塊在自定義的框中

function simplex_page_theme ($post) { 
    $values = get_post_custom($post->ID); 
    $revslider = isset($values['revslider']) ? esc_attr($values['revslider'][0]) : 」; 
    wp_nonce_field('simp_meta_box', 'simplex_meta_box_nonce'); 
?> 

<tr valign="top"> 
    <td> 
     <?php $revslider = new RevSlider(); 
     $arrSliders = $revslider->getArrSliders(); 
     if(empty($arrSliders)) : ?> 
      <div style="background-color:#FFFFE0; border:1px solid #E6DB55; padding:0 0.8em; margin:0;"> 
       <p style="font-weight:bold; margin:7px 0;"><?php printf(__('No sliders found! Please create a new slider from the %1$sRevolution Slider%2$s page.'), '<a href="admin.php?page=revslider">', '</a>'); ?></p> 
      </div> 
     <?php else : ?> 
      <label for="current_rev_slider"><?php esc_html_e('Choose a Revolution Slider:'); ?></label><br /> 
      <select name="rev_slider_shortcode" id="current_rev_slider"> 
       <option value=""<?php echo (get_option('revslider') == '') ? ' selected="selected"' : ''; ?>><?php esc_html_e('--Select Slider--'); ?></option> 
       <option value="<?php echo $revslider->getShortcode(); ?>"><?php echo $revslider->getTitle(); ?></option> 
       <?php foreach($arrSliders as $revslider): ?> 
       <?php endforeach; ?> 
      </select><br /> 
      <em><?php printf(__('To create additional sliders or to configure the existing ones please refer to the %1$sRevolution Slider%2$s page.'), '<a title="'.esc_html__('Go to Revolution Slider page').'" href="admin.php?page=revslider">', '</a>'); ?></em><br /> 
      <div class="clear"></div> 
     <?php endif; ?> 
    </td> 
</tr> 

<?php } 
// Saves the Custom Metabozes 
add_action('save_post', 'simplex_meta_box_save'); 
function simplex_meta_box_save($post_id){ 
    // Bail if we're doing an auto save 
    if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; 

    // if our nonce isn't there, or we can't verify it, bail 
    if(!isset($_POST['simplex_meta_box_nonce']) || !wp_verify_nonce($_POST['simplex_meta_box_nonce'], 'simp_meta_box')) return; 

    // if our current user can't edit this post, bail 
    if(!current_user_can('edit_post')) return; 

    // now we can actually save the data 
    $htmallowed = array(
     'a' => array(// on allow a tags 
      'href' => array() // and those anchors can only have href attribute 
     ) 
    ); 

    // Make sure your data is set before trying to save it 
    if(isset($_POST['revslider'])) 
     update_post_meta($post_id, 'revslider', esc_attr($_POST['revslider'])); 

} 

回答