我使用wp\\u query通过元值检索我的帖子。其中一个元值具有存储在数据库中的相同文本。让我举个例子。
Post title Meta value
hello1 text1
hello2 text2
hello3 text2
所以在数据库中有三个帖子。第一个在元值中有“text1”。另外两个在meta值中存储了“text2”。
查询正在运行,但我需要根据元值返回不同的帖子。所以结果应该是
hello1 text1
hello2 text2
我不想出现的第三篇帖子,因为它与标题为hello2的帖子具有相同的元价值。所以,只有独特的元价值的职位,我想出现在你的理解。
如何使用wp\\U查询实现这一点?
这是我目前为止的代码,它返回所有基于meta\\u值文本的非空帖子。
$args = array(
\'cat\'=>\'44\',
\'posts_per_page\'=>\'16\',
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'meta_query\' => [
\'metavalue1\' => [ \'key\' => \'Meta_value\', \'value\' => \'\', \'compare\' => \'!=\' ],
\'price1\'=> [ \'key\' => \'price_euro\', \'value\' => \'30\', \'compare\' => \'>\',\'type\'=>\'NUMERIC\' ],
],
\'orderby\' => \'price1\',
\'order\' => \'ASC\'
);
$wp_query = new WP_Query($args);
感谢您的帮助。我在搜索中使用此代码。负责搜索的php文件。
SO网友:kero
您可以简单地将查询限制为仅返回一个结果。为此,请使用字段posts_per_page
在查询参数中。检查the documentation 有关此的详细信息。
$args = [
\'cat\' => \'44\',
\'posts_per_page\' => \'16\',
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'meta_query\' => [
\'metavalue1\' => [
\'key\' => \'Meta_value\',
\'value\' => \'\',
\'compare\' => \'!=\'
],
\'price1\'=> [
\'key\' => \'price_euro\',
\'value\' => \'30\',
\'compare\' => \'>\',
\'type\' => \'NUMERIC\'
],
],
\'orderby\' => \'price1\',
\'order\' => \'ASC\',
\'posts_per_page\' => 1,
];
$wp_query = new WP_Query($args);
旁注:为了使代码更具可读性,请坚持一件事。使用短数组语法(
[ ]
) 某处?->随处使用,避免
array()
. 使用
\'key\' => \'value\'
? 不使用
\'key\'=>\'value\'
其他地方