2012-06-13 62 views
0

我似乎有我的元框保存問題,不完全確定我做錯了什麼。任何幫助將不勝感激!特定模板文件中沒有保存的Wordpress元框

我的繼承人功能文件:

add_action('add_meta_boxes', 'cd_meta_box_add'); 

function cd_meta_box_add() 
{ 
    $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ; 
    $template_file = get_post_meta($post_id,'_wp_page_template',TRUE); 

    if ($template_file == 'golf.php') 
    { 
     add_meta_box ( 
      'golf-times', 
      'Golf Opening Times & Prices', 
      'cd_meta_box_cb', 
      'page', 
      'normal', 
      'high' 
     ); 
    } 
} 

function cd_meta_box_cb($post) 
{ 
    $values = get_post_custom($post->ID); 
    $times = isset($values['golf_meta_box_times']) ? esc_attr($values['golf_meta_box_times'][0]) : ''; 
    $prices = isset($values['golf_meta_box_prices']) ? esc_attr($values['golf_meta_box_prices'][0]) : ''; 
    wp_nonce_field('golf_meta_box_nonce', 'meta_box_nonce'); 
    ?> 
    <div style="overflow: hidden;"> 
     <div style="width: 45%; float: left;"> 
      <p><label for="golf_meta_box_times">Opening Times</label></p> 
      <p><textarea type="text" name="golf_meta_box_times" id="golf_meta_box_times" rows="5" style="width: 90%;" value="<?php echo $times; ?>"> </textarea></p> 
     </div> 
     <div style="width: 45%; float: left;"> 
      <p><label for="golf_meta_box_prices">Prices</label></p> 
      <p><textarea type="text" name="golf_meta_box_prices" id="golf_meta_box_prices" rows="5" style="width: 90%;" value="<?php echo $prices; ?>"> </textarea></p> 
     </div> 
    </div> 
    <?php 
} 


add_action('save_post', 'cd_meta_box_save'); 
function cd_meta_box_save($post_id) 
{ 
    if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; 

    if(!isset($_POST['meta_box_nonce']) || !wp_verify_nonce($_POST['meta_box_nonce'], 'golf_meta_box_nonce')) return; 

    if(!current_user_can('edit_post')) return; 

    $allowed = array( 
     'a' => array(
      'href' => array() 
     ) 
    ); 

    if(isset($_POST['golf_meta_box_times'])) 
     update_post_meta($post_id, 'golf_meta_box_times', wp_kses($_POST['golf_meta_box_times'], $allowed)); 

    if(isset($_POST['golf_meta_box_prices'])) 
     update_post_meta($post_id, 'golf_meta_box_prices', wp_kses($_POST['golf_meta_box_prices'], $allowed)); 

} 
?> 

如果任何人有一個線索,如何使這個拯救這將是一個很大的幫助!

我也有問題使數據顯示 - 但我只能假設,它實際上節省哈哈!

乾杯

回答

3

functions.php不能輸出HTML,據我所知。 將您的html包裝在一個字符串中並將其返回,您的文件可能會返回錯誤。

您的add_meta_box代碼似乎是正確的,可能無法滿足條件,您確定要發送數據嗎?

+0

我剛做了一個快速測試,它甚至顯示了頁面上的框中的內容,它似乎並沒有保存在管理端的東西,textarea框發送數據,顯示在前端,但不保存到管理端 – jamie

+0

剛剛意識到它是什麼... 我把數據輸出放在textarea的值中,令人震驚的錯誤! – jamie

+0

那麼,解決方案是什麼? – unifiedac

相關問題