卡伦的回答让我对posts_where
筛选以找到更好的解决方案,以便挂接到WP\\u查询中。在谷歌搜索了一段时间后,我发现this page 这样做更好。
使用这种方法,我最终使其工作如下:
add_filter(\'posts_where\', function ($where, $query)
{
global $wpdb;
$label = $query->query[\'query_label\'] ?? \'\';
if ($label === \'ignore_zero_query\')
{
$where .= " AND {$wpdb->prefix}posts.menu_order > 0 ";
}
if ($label === \'only_zero_query\')
{
$where .= " AND {$wpdb->prefix}posts.menu_order <= 0 ";
}
return $where;
}, 10, 2);
现在我以这种方式获得帖子:
$args = array(
\'posts_per_page\' => -1,
\'query_label\' => \'ignore_zero_query\',
);
$posts_query = new WP_Query();
$posts = $posts_query->query($args);