按ACF值筛选WordPress API响应

时间:2019-03-17 作者:geochanto

我正在用wordpress API构建一个站点。我正在使用高级自定义字段ACF to Rest API 在API中公开ACF数据的插件:https://github.com/airesvsg/acf-to-rest-api

现在,我试图通过ACF值过滤响应。我找到了这段代码:

add_filter( \'rest_product_query\', function( $args ) {

    $ignore = array(\'per_page\', \'search\', \'order\', \'orderby\', \'slug\');

    foreach ( $_GET as $key => $value ) {
      if (!in_array($key, $ignore)) {
        $args[\'meta_query\'][] = array(
          \'key\'   => $key,
          \'value\' => $value,
        );
      }
    }

    return $args;
  });
现在,我可以像这样过滤查询:https://example.com/wp-json/wp/v2/product?length=Customizable

问题是,现在我无法访问像这样的api页面https://example.com/wp-json/wp/v2/product?page=2, 我需要能够做到这一点。

有没有办法重构它,使其仍然能够使用默认的wordpress API过滤器/搜索行为?

或者,还有其他更好的方法来做同样的事情吗?

1 个回复
SO网友:geochanto

好的,我意识到我应该将每个默认WP键添加到$ignore 数组,像这样,我添加了“page”:

$ignore = array(\'page\', \'per_page\', \'search\', \'order\', \'orderby\', \'slug\');

相关推荐

使用WordPress设置API保存多个复选框

使用WordPress设置api保存多个复选框时遇到问题。我可以添加多个值,但只保存最后一个复选框。这就是我现在拥有的function uwcc_checkbox_field_1_render( ) { $options = get_option( \'uwcc_settings\' ); ?> <input type=\'checkbox\' name=\'uwcc_settings[uwcc_checkbox_field_1]\' <?php c