我正在编写插件,用于将WooCommerce产品的价格与外部源同步。所以我想得到带有EAN的产品(有元数据_wpm_gtin_code
). 我传递给谁get_posts($args)
我得到的是空数据。我正在使用WordPress 5.3.2。
我潜入WP source追踪原因。打印生成的SQL时$this->request
在wp-includes/class-wp-query.php:2890
我看到它包含“where条件”AND (0 = 1)
这显然不可能成功。这段代码由wp-includes/class-wp-query.php:2101-2109
, 明确由$clauses = $this->tax_query->get_sql( $wpdb->posts, \'ID\' ); $where .= $clauses[\'where\'];
.
我没有深入研究$this->tax_query->get_sql(...)
. 我所知道的是,我没有将任何分类学参数传递给get_posts($args)
, 所以我不希望它影响查询。
我该怎么打电话get_posts($args)
获取所有类型和状态的帖子?
$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)); // print args
$posts = get_posts( $args );
error_log(print_r($posts, true)); // print posts - empty!!!