帖子未按 post__in 排序

Posts not ordering by post__in

我正在尝试显示用户在管理员中选择的 3 篇博文。顺序应该是 gridItem1、gridItem2,然后是 gridItem3。我在下面列出了我的查询,但它显示了选定的帖子,但日期顺序与我概述的顺序不同。

我搜索了其他帖子并添加到 'surpress_filters' => truewp_reset_query(); 但似乎都没有帮助。

这是我的代码:

    $gridItem1 = get_field('large_grid_item');
        $gridItem2 = get_field('second_grid_item');
        $gridItem3 = get_field('third_grid_item');        

        // Example argument that defines three posts per page. 
        
        
$args = array(
    'posts_per_page' => 3,
        'post_type' => array('post', 'page','programme'),
    'suppress_filters' => true,
    'post__in' => array($gridItem1, $gridItem2, $gridItem3),
    'order_by' => 'post__in',
);  


        
 
// Variable to call WP_Query. 
wp_reset_query();        
        
$the_query = new WP_Query( $args ); 

有谁知道如何让它们按照我列出的顺序显示吗?谢谢

您不需要使用 suppress_filters。您也不需要 wp_reset_query。主要问题是 order_by 这是不正确的。正确的使用形式是 orderby.

改为使用以下查询:

$gridItem1 = get_field('large_grid_item');
$gridItem2 = get_field('second_grid_item');
$gridItem3 = get_field('third_grid_item');

$args = array(
    'post_type'        => array('post', 'page','programme'),
    'posts_per_page'   => 3,
    'post__in'         => array($gridItem1, $gridItem2, $gridItem3),
    'orderby'          => 'post__in',
); 

$the_query = new WP_Query( $args );

wp_reset_postdata();

WP_QueryDocs

让我知道你是否能够让它工作!