【问题标题】:How to get all posts if post don't have specific meta key?如果帖子没有特定的元键,如何获取所有帖子?
【发布时间】:2020-06-11 15:42:34
【问题描述】:

我正在尝试根据指定的帖子元数据添加帖子过滤器。过滤器效果很好,但是当我选择“所有类型”时,过滤器不会重置,也不会显示任何帖子。

HTML:

<select name="typefilter">
<option value="">All types</option>
<option value="type1">Type 1</option>
<option value="type2">Type 2</option>
<option value="type3">Type 3</option>
</select>

<button>Apply filters</button>

PHP:

if( isset( $_POST['typefilter'] ) ) {
    $args['meta_query'][] = array(
        'key' => 'custom_type',
        'value' => $_POST['typefilter'],
        'compare' => '='
    );
}

【问题讨论】:

    标签: ajax wordpress meta-query


    【解决方案1】:

    您的if 条件仅检查typefilter 键是否存在于$_POST 中,而不检查它是否为空。然后,WordPress 会尝试获取具有名为 custom_type 且值为空的自定义字段的帖子。 WordPress 无法找到符合该标准的帖子,因此您没有得到任何结果。

    在您的if 条件内,检查typefilter 键是否已设置并且它不为空:

    // User wants to filter posts by type
    if( isset( $_POST['typefilter'] ) && ! empty( $_POST['typefilter'] ) ) {
        $args['meta_query'][] = array(
            'key' => 'custom_type',
            'value' => $_POST['typefilter'],
            'compare' => '='
        );
    }
    

    【讨论】:

      猜你喜欢
      • 2022-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多