两个不同的 get_posts() 返回相同的 post

Two different get_posts() returning same post

我正在使用 Wordpress 并尝试创建一些框,以自定义 post 类型从 Adanvec 海关字段中检索信息。

我有这个代码:

<div class="col-sm-2 hidden-xs">
    <?php
    $box1 = get_front_page_box("Box 1");
    $style_front = get_box_style($box1->ID, "front");
    echo $box1->ID;
    ?>
    <div id="front-box-1" class="front-box height-low <?php echo $box1->ID; if(has_back_panel($box1->ID)) echo "flip"; ?>">
        <div class="front" style="<?php echo $style_front; ?>"><a href="#">Banana</a></div>
        <?php
        if(has_back_panel($box1->ID)):
            $style_back = get_box_style($box1->ID, "back");
        ?>
        <div class="back" style="<?php echo $style_back; ?>"></div>
        <?php endif; ?>
    </div>
</div>
<div class="col-sm-5 hidden-xs">
    <?php
    $box2 = get_front_page_box("Box 2");
    $style_front = get_box_style($box2->ID, "front");
    echo $box2->ID;
    ?>
    <div id="front-box-2" class="front-box height-low <?php echo $box2->ID; if(has_back_panel($box2->ID)) echo "flip"; ?>">
        <div class="front" style="<?php echo $style_front; ?>"><a href="#">Banana</a></div>
        <?php
        if(has_back_panel($box2->ID)):
            $style_back = get_box_style($box2->ID, "back");
        ?>
        <div class="back" style="<?php echo $style_back; ?>"></div>
        <?php endif; ?>
    </div>
</div>

还有这些函数:

function get_front_page_box($name) {
    $args = array(
        'post_title'   => $name,
        'post_type'    => 'front-page-box',
        'post_status'  => 'publish'
    );

    $box_array = get_posts($args);

    $box = $box_array ? $box_array[0] : false;

    print_array($box);
    return $box;
}

function get_box_style($id, $side) {
    $style = "";
    if(get_field($side."_panel_background_color", $id)) $style = "background-color:".get_field($side."_panel_background_color", $id).";";

    return $style;
}   

但由于某些原因,两个盒子的细节相同(均来自盒子 2)。 知道为什么这些返回相同的信息吗? post("Box 1" 和 "Box 2" 都存在于 front-page-box 自定义 post 类型下。

只是为了检查,如果您添加另一个名为 "Box 3" 的框,所有框都有来自 "Box 2" 或 "Box 3" 的结果?

更好的方法是使用 post ID 作为 get_front_page_box() 中的参数。

似乎 post_title 不是有效的过滤器。 但是发现有一个特定的功能可以按标题获取帖子。

get_page_by_title

二手$box1 = get_page_by_title("Box 1", NULL, "front-page-box");