首页 > 解决方案 > 如何按自定义字段过滤 ACF 帖子对象字段/搜索?

问题描述

我有一个前端 ACF 表单 - acf_form()。带有帖子对象字段。我想通过自定义字段限制查询结果。下面的代码有效,除了当我尝试在搜索栏中输入时 - 得到以下错误:我得到的错误是 ajax 响应中的 PHP 错误;

0:“PhpConsole\Handler->handleError()”

1:“strpos()”

2:“acf_order_by_search()”

3:“acf_field_post_object->get_ajax_query()”

4:“acf_field_post_object->ajax_query()”

5:“do_action('wp_ajax_acf/fields/post_object/query')”

还得到“未定义的索引:s”和“strpos():空针”

我的代码:

function filter_customer_doc_query( $args, $field, $post_id ) {
  $user_id_doc = get_current_user_id();
  $business_id_doc = get_field('user_business_id', 'user_' . $user_id_doc);
  $args = array(
    'posts_per_page' => 10,
    'post_type'     => 'customer',
    'meta_key'      => 'customer_business_id',
    'meta_value'    => $business_id_doc,
  );
  return $args;
}
add_filter('acf/fields/post_object/query/name=doc_customer_object', 'filter_customer_doc_query', 10, 3);

标签: wordpressadvanced-custom-fields

解决方案


通过将上面的 $args 替换为:

$args['meta_query'] = array(
    array(
        'key'       => 'customer_business_id',
        'value' => $business_id_doc,
        'compare' => '=',
    )
);

推荐阅读