我希望你能帮助我,给我一个提示,告诉我一些我正在努力实现但却失败得很惨的事情。
我正在研究WordPress的房地产主题——房地产。以下是网站链接:https://lnobrerealestate.pt/
我试图实现的是有两个特色物业区,一个是销售区,一个是租赁区。
因此,为了做到这一点,我需要更改获取帖子的查询。获取特征属性列表的原始查询是:
/* Featured Properties Query Arguments */
$featured_properties_args = array(
\'post_type\' => \'property\',
\'posts_per_page\' => 12,
\'meta_query\' => array(
array(
\'key\' => \'REAL_HOMES_featured\',
\'value\' => 1,
\'compare\' => \'=\',
\'type\' => \'NUMERIC\'
)
)
);
此查询获取标记为特色的前12个属性。我需要补充的是另一个条件,可以检查房产状态是“待售”还是“待租”。
我可以通过此查询获取属性状态数组:
$property_status_terms = get_terms(array(
\'taxonomy\' => "property-status",
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'hide_empty\' => false
)
);
if (! empty($property_status_terms)) {
foreach ($property_status_terms as $property_status) {
echo \'<p>\' . $property_status->name . \'</p>\';
}
}
因此,我认为基于这两个查询,我可以执行以下操作:
/* Featured Properties Query Arguments */
$featured_properties_args = array(
\'post_type\' => \'property\',
\'posts_per_page\' => 12,
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'REAL_HOMES_featured\',
\'value\' => 1,
\'compare\' => \'=\',
\'type\' => \'NUMERIC\'
),
get_terms(array(
\'taxonomy\' => \'property-status\',
\'value\' => array(\'For Rent\', \'Arrendamento\'),
\'compare\' => \'IN\',
)
)
)
);
我将财产状态数组与两个值进行比较——英语的租金值和葡萄牙语的Arrendamento值。
这个查询不会产生我想要实现的结果,也无法得到我在这里缺少的东西。看起来很直截了当。
我希望你能给我一个建议。
谢谢
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
好的,这就是我所说的“一厢情愿的编码”的一个小例子。)
get_terms(array(
\'taxonomy\' => \'property-status\',
\'value\' => array(\'For Rent\', \'Arrendamento\'),
\'compare\' => \'IN\',
) )
您使用
get_terms
函数,它将
检索给定分类法或分类法列表中的术语。
您可以在查询的meta\\u query部分中使用此选项,它用于查询自定义字段。
所以它根本做不到任何事情。。。术语不是有效的meta\\u查询查询。。。
但这当然可以做到。。。您只需检查文档WP_Query
...
您已经有了:
$featured_properties_args = array(
\'post_type\' => \'property\',
\'posts_per_page\' => 12,
\'meta_query\' => array(
array(
\'key\' => \'REAL_HOMES_featured\',
\'value\' => 1,
\'compare\' => \'=\',
\'type\' => \'NUMERIC\'
)
)
);
而且你知道这会让你拥有特色的房产。所以你所要做的就是
tax query 其中:
$featured_properties_args = array(
\'post_type\' => \'property\',
\'posts_per_page\' => 12,
\'meta_query\' => array(
array(
\'key\' => \'REAL_HOMES_featured\',
\'value\' => 1,
\'compare\' => \'=\',
\'type\' => \'NUMERIC\'
)
),
\'tax_query\' => array(
array(
\'taxonomy\' => \'property-status\',
\'field\' => \'name\',
\'terms\' => array(\'For Rent\', \'Arrendamento\'),
)
)
);