2016-09-30 6 views
0

私は、選択オプションを持つ私のカスタム投稿タイプの1つのメタボックスを構築しています。投稿を選択して更新すると、ページがリロードされたときにそのオプションが選択されたままになるようにしています。私はStackOverflow上のいくつかの人々が同じことをしているのを見つけました。私はそれらの提案に従ってきましたが、まだそれを理解していません。誰かが何か提案があれば、どんな助けもありがとう。更新後に選択を維持するメタボックスを取得

<?php 

function property_info_meta_box() { 
    add_meta_box('property-info', 'Property', 'property_info_cb', 'properties', 'normal', 'high'); 
} 
add_action('add_meta_boxes', 'property_info_meta_box'); 

function property_info_cb($propertyInfo) { 

    $selectAgent = get_post_meta($propertyInfo->ID, 'select-agent-value', true); 

    ?> 

    <label for="select-agent-text">Select Agent</label> <br> 
    <select multiple size="5" name="select-agent" id="select-agent"> 

     <option value="none">None</option> 

      <?php 

      $args = array(
       'post_type' => 'agents', 
       'posts_per_page' => -1 
       ); 

      $posts = new WP_Query($args); 

      if ($posts->have_posts()) : while ($posts->have_posts()) : $posts->the_post(); ?> 

       <option value="<?php the_ID() ?>" <?php selected($selectAgent, the_ID()); ?>> <?php the_title(); ?> </option> 

      <?php endwhile; endif; ?> 

    </select> 

<?php } 

function add_property_info_fields ($propertyInfoId, $propertyInfo){ 
    if ($propertyInfo->post_type == 'properties') { 

     if(isset($_POST['select-agent'])){ 
      update_post_meta($propertyInfoId, 'select-agent-value', $_POST['select-agent']); 
     } 

    } 
} 
add_action('save_post', 'add_property_info_fields', 10, 2); 

答えて

0

ここでは暗く撮影していますが、the_ID()が不適切です。この機能はIDを画面に表示します。関数のパラメーターとして使用するためにIDを返そうとしています。あなたは、のようなものを試してみてください:

<?php selected($selectedAgent, get_the_ID()); ?>

それだったthe_ID()

+0

get_the_ID()を参照してください!あなたはロック! –

関連する問題