首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress元盒覆盖页面段塞

Wordpress元盒覆盖页面段塞
EN

Stack Overflow用户
提问于 2013-12-18 22:37:13
回答 1查看 313关注 0票数 1

我遇到了一个奇怪的bug与Wordpress 3.8。

我所做的是在旁边创建一个元框,这是一个多选择的自定义帖子类型。这很好,因为我可以选择多个类型,保存post,并在页面上显示多个项(在本例中,调用操作)。

奇怪的是,当我在Wordpress中更新页面时,页面的片段(permalink)成为$ctas查询中最后一次调用动作类型的标题。

这里有什么突出的吗?它发生在if ($ctas->have_posts()块中。

代码语言:javascript
复制
// 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();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-18 22:44:17

在管理中使用WP_Query是不安全的,它严重干扰了当前的$post。切换到get_posts(),一切都应该像预期的那样工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20669895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档