我遇到了一个奇怪的bug与Wordpress 3.8。
我所做的是在旁边创建一个元框,这是一个多选择的自定义帖子类型。这很好,因为我可以选择多个类型,保存post,并在页面上显示多个项(在本例中,调用操作)。
奇怪的是,当我在Wordpress中更新页面时,页面的片段(permalink)成为$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();
}发布于 2013-12-18 22:44:17
在管理中使用WP_Query是不安全的,它严重干扰了当前的$post。切换到get_posts(),一切都应该像预期的那样工作。
https://stackoverflow.com/questions/20669895
复制相似问题