【发布时间】:2020-02-24 14:26:26
【问题描述】:
我有一个自定义帖子类型“properties”,它有一个复选框字段(字段名“property_status”),选项为“出租:出租”和“销售:出售”(值:标签)。我还有一个页面,我想在其中列出所有待售房产,因此我添加了帖子小部件并为查询提供了 ID 'for-sale'。我检查了https://developers.elementor.com/custom-query-filter/ 的自定义查询文档,并在我的子主题的functions.php 中添加了以下几行:
add_action( 'elementor/query/for-sale', function( $query ) {
// Get current meta Query
$meta_query = $query->get( 'meta_query' );
// Append our meta query
$meta_query = [
'key' => 'property_status',
'value' => 'sale',
'compare' => 'in',
];
$query->set( 'meta_query', $meta_query);
} );
这不会产生我想要的结果:它不会破坏我的网站,但我会继续获得所有属性的列表。只是为了测试一下,我还尝试将此代码与其他字段类型(文本字段和数字字段)和其他比较运算符一起使用,但结果相同。我还注释了上面的行并输入了以下行:
$query->set( 'post_type', 'agent' );
这确实给了我一个代理列表而不是属性,所以至少我知道 add_action 正在做它的工作,我想这是值得的。是否有人对我如何调整该元查询以使其真正起作用有任何建议?我不是 PHP 开发人员,不太确定如何从这里开始。非常感谢任何建议。我真的很想知道我做错了什么,因为这会让我有机会让我的网站更进一步。
【问题讨论】:
-
比较的代码不是`'compare' => '='`而是
'compare' => 'in'我认为 -
是的,你是对的——那是我的一次试训的草率复制和过去。我的第一个版本实际上是'in',但是当它不起作用时,我尝试了'='。与此同时,我已经更新了我的问题。
标签: php wordpress wordpress-theming elementor