2017-09-15 21 views
0

問問大家,我有問題。在這裏,我嘗試使用多個chechbox到我的自定義帖子元框。如何顯示來自Metabox的Chechbox結果到單帖WordPress的?

<?php 

    function prodetail() { 
     add_meta_box('pro_metabox', 'Detail Property', 'pro_metabox', 'property', 'normal', 'default'); 
    } 

    function pro_metabox() { 
     global $post; 
     echo '<input type="hidden" name="eventmeta_noncename" id="eventmeta_noncename" value="' . 
     wp_create_nonce(plugin_basename(__FILE__)) . '" />'; 

     $postmeta = maybe_unserialize(get_post_meta($post->ID, 'elements', true)); 


      $elements = array(
       'pool' => 'Pool', 
       'garage' => 'Garage', 
       'balcon' => 'Balcon', 
       'yard' => 'Yard', 
       'internet' => 'Internet' 
      ); 

      foreach ($elements as $id => $element) { 
       if (is_array($postmeta) && in_array($id, $postmeta)) { 
        $checked = 'checked="checked"'; 
       } else { 
        $checked = null; 
       } 
       ?> 

       <div class="pro-inn"> 
        <div class="procols"> 
         <div class="pro-inn"> 
          <input type="checkbox" name="multval[]" value="<?php echo $id; ?>" <?php echo $checked; ?> /> 
          <?php echo $element;?> 
         </div> 
        </div> 
       </div> 

       <?php 

      } 
    } 


    function pro_meta($post_id, $post) { 
     if (!wp_verify_nonce($_POST['eventmeta_noncename'], plugin_basename(__FILE__))) { 
     return $post->ID; 
     } 

     if (!current_user_can('edit_post', $post->ID)) 
      return $post->ID; 

     if (! empty($_POST['multval'])) { 
       update_post_meta($post_id, 'elements', $_POST['multval']); 
      } else { 
       delete_post_meta($post_id, 'elements'); 
     } 

    } 
    add_action('save_post', 'pro_meta', 1, 2); 

?> 

幫我添加代碼來顯示這個檢查結果的single.php,因爲我的代碼使用的foreach只顯示文本數組沒有表現出像游泳池車庫Balcon的ECT文本。

感謝

+0

似乎metabox值存儲在DB中錯誤。可以發佈您的保存郵政編碼? – vel

+0

@vel謝謝安澤,請將我的完整代碼(編輯)。 – Yayun

回答

1

使用此代碼在您的single.php文件,您的自定義後

$meta_value = get_post_meta($post->ID, 'elements', true); 
foreach($meta_value as $key=>$value){ 
    echo $value . ' '; 
} 

它會顯示結果一樣的,你在問題中提到的,即:

(池車庫的Balcon等)

+0

謝謝Najeeb,這個代碼工作 – Yayun