首页 > 解决方案 > 为什么 get_posts() 返回空数据?

问题描述

我正在尝试获取与元查询匹配的某种类型的帖子,但无论我尝试什么,我都会得到空结果。我有

        $meta_query = array(
            'relation' => 'OR',
            array(
                'key'       => '_wpm_gtin_code',
                'compare'   => 'EXISTS'
            ),
            array(
                'key'       => '_product_code',
                'compare'   => 'EXISTS'
            )
        );
        $args = array(
            'meta_query' => $meta_query,
            'post_type' => 'product',
            'post_status' => 'publish'
            //'posts_per_page' => -1
        );
        error_log(print_r($args, true));
        $posts = get_posts( $args );
        error_log(print_r($posts, true));

我在日志文件中看到

[02-Mar-2020 06:51:12 UTC] Array
(
    [meta_query] => Array
        (
            [relation] => OR
            [0] => Array
                (
                    [key] => _wpm_gtin_code
                    [compare] => EXISTS
                )

            [1] => Array
                (
                    [key] => _product_code
                    [compare] => EXISTS
                )

        )

    [post_type] => product
    [post_status] => publish
)

[02-Mar-2020 06:51:12 UTC] Array
(
)

当我使用此 SQL 查询手动选择数据时:

SELECT * FROM wp_posts
INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )
WHERE wp_posts.post_type = 'product' AND wp_posts.post_status = 'publish' AND
(wp_postmeta.meta_key = '_wpm_gtin_code' OR wp_postmeta.meta_key = '_product_code')

我得到两行的正确结果。我究竟做错了什么?

标签: wordpress

解决方案


 $meta_query = array(
    'relation' => 'OR',
    array(
        'key' => '_wpm_gtin_code',
        'compare' => 'EXISTS',
        'value' => '' // This is ignored, but is necessary...
    ),
    array(
        'key' => '_product_code',
        'compare' => 'EXISTS',
        'value' => '' // This is ignored, but is necessary...
    )
);

$args = array(
    'meta_query' => $meta_query,
    'post_type' => 'product',
    'post_status' => 'publish',
    //'posts_per_page' => -1
);

尝试添加'value' => ''数组...


推荐阅读