2013-12-18 50 views
1

我遇到了一个奇怪的bug与Wordpress 3.8。WordPress的元框覆盖页面弹头

我正在做的是在自定义帖子类型的多选上创建一个元框。这很好,因为我可以选择多种类型,保存帖子,并在页面上显示多个项目(在这种情况下,调用动作)。

奇怪的是,当我在Wordpress中更新页面时,页面的slu((固定链接)变成最后的 $ ctas查询中的调用动作类型的标题。

什么东西都伸出来了?这发生在if ($ctas->have_posts()区块中。

// Disply the selection of CTAs in a meta box 
function xxxxx_calloutContent($post) { 
    // Get all the callouts 
    $args = array('post_type' => 'callout', 'posts_per_page' => '100'); 
    $ctas = new WP_Query($args); 
    $assignedCallouts = explode(',',get_post_meta($post->ID, 'callouts', true)); 
    // Create the meta box form 
    wp_nonce_field('xxxxxCallout', 'xxxxxCalloutForm'); 
    if (count($assignedCallouts) > 3) { 
     xxxxx_ctaErrorMessage('Only three CTAs are allowed. Please choose three.'); 
     add_action('admin_notices', 'xxxxx_ctaErrorMessage'); 
    } 
    echo '<label for="calloutSelect">Choose your CTAs</label><br>'; 
    echo '<select id="xxxxxCTASelect" name="xxxxxCTASelect[]" multiple="multiple">'; 
    if($ctas->have_posts()) { 
     while($ctas->have_posts()) { 
      $ctas->the_post(); 
      if (in_array(get_the_ID(), $assignedCallouts)) { 
       echo '<option selected="selected" value="'.get_the_ID().'">'.get_the_title().'</option>'; 
      } else { 
       echo '<option value="'.get_the_ID().'">'.get_the_title().'</option>'; 
      } 
     } 
    } else { 
     echo '<option value="" disabled="disabled">No Callouts</option>'; 
    } 
    echo '</select>'; 
    wp_reset_postdata(); 
} 

回答

0

它是不是安全的管理员可以使用WP_Query,它与当前$post严重打乱。切换到get_posts(),一切都应按预期工作。