我在WordPress(6.7.2) / acf(6.3.12)中设置了一个设置,并且正在尝试订购帖子,首先是自定义字段是真实的,然后是按日期订购。自定义字段是一个true/false naty
pinned
。
我要面对的问题是在文档中,他们建议meta_key
/meta_value
-但这是一个过滤器,并删除了没有ACF字段的帖子。如果有任何区别,则帖子在添加ACF字段之前存在。我还在WP_QUERY周围阅读了wordpress
上的文献,但无法解决我的问题。 我尝试了WP_QUERY的各种迭代以使其工作,但它似乎只是以随机顺序拉回东西,或者只是忽略自定义字段。 there是我最新的WP_QUERY,试图通过一个检查字段是否为true/1,并且存在false/0或根本不存在。任何建议都会受到欢迎!
meta_query
thank非常感谢您对超级有用的评论都非常有用 - 进行两个查询并合并正是我需要做的。按照wp stack Exchange的链接
,这是我需要的代码:
$args = array(
'post_type' => 'post',
'posts_per_page' => 5,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'pinned', // ACF field named "pinned"
'compare' => 'EXISTS',
'value' => '1',
'operator' => '='
),
array(
'key' => 'pinned',
'compare' => 'EXISTS',
'value' => '0',
'operator' => '='
),
array(
'key' => 'pinned',
'compare' => 'NOT EXISTS'
)
),
'orderby' => array(
'pinned' => 'DESC',
'post_date' => 'DESC'
)
);
$results = new WP_Query($args);