You can pass your meta query into query_posts or (the preferable) WP_Query in 2 ways:
<使用数组键的数组
meta_key
,
meta_value
,
meta_type
和
meta_compare
使用数组键的数组
key
,
value
,
type
和
compare
在你的问题中,你试图将两者混合使用,这就是为什么它不起作用。
1. An array using the array keys meta_key
, meta_value
, meta_type
and meta_compare
这是您在问题中尝试的方式,但meta\\u查询应该使用以下数组键:
$args = array(
\'post_type\' => \'topics\',
\'post_status\' => \'publish\',
\'posts_per_page\' => -1,
\'meta_query\' => array(
\'meta_key\' => \'forum_category\',
\'meta_value\' => $forum_id,
\'meta_compare\' => \'=\'
)
)
);
2. An array of arrays using the array keys key
, value
, type
and compare
从Codex for WP_Query:
Important Note: meta\\u查询采用array 元查询参数的个数arrays (它需要一个数组)-您可以在下面的示例中看到这一点。此构造允许您使用relation 第一个(外部)数组中的参数,用于描述元查询之间的布尔关系。
$args = array(
\'post_type\' => \'topics\',
\'post_status\' => \'publish\',
\'posts_per_page\' => -1,
\'meta_query\' => array(
array(
\'key\' => \'forum_category\',
\'value\' => $forum_id,
\'compare\' => \'=\'
)
)
)
);
使用这种方式的优点是,您可以添加多个meta\\u查询来优化结果,例如,您可以获得所有帖子,其中forum\\u category=$forum\\u id,forum\\u版主=$版主\\u name
$args = array(
\'post_type\' => \'topics\',
\'post_status\' => \'publish\',
\'posts_per_page\' => -1,
\'meta_query\' => array(
\'relation\' => \'AND\', // this could also be "OR"
array(
\'key\' => \'forum_category\',
\'value\' => $forum_id,
\'compare\' => \'=\'
),
array(
\'key\' => \'forum_moderator\',
\'value\' => $moderator_name,
\'compare\' => \'=\'
),
)
)
);
Ref: 请参见
Codex for WP_Query 有关更多信息和示例。
Note: 我知道你找到了答案,但我认为附加信息和替代用法可能会有所帮助,即使对你没有帮助,也会对其他搜索类似问题的用户有所帮助