【问题标题】:Custom Query in Elementor Pro not workingElementor Pro 中的自定义查询不起作用
【发布时间】: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


【解决方案1】:

此外,您没有将 property_status 查询附加到 meta_query 的其余部分。您只是将其复制到其中。你可以使用 Array_push

【讨论】:

    猜你喜欢
    • 2020-08-15
    • 2021-06-09
    • 2023-01-27
    • 2021-08-17
    • 1970-01-01
    • 2021-07-29
    • 2016-10-05
    • 1970-01-01
    • 2021-10-24
    相关资源
    最近更新 更多