You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ACF关联字段时get_posts的meta_query无结果问题

ACF Relationship字段meta_query调用失效问题解决

问题描述

在single-services.php模板中使用ACF Relationship字段展示相关服务时,print_r能正常输出字段数据,但通过meta_query调用该字段时无法生效,原代码如下:

$related_services = get_posts(array(
    'post_type' => 'services', // name of custom post type
    'meta_query' => array(
        array(
            'key' => 'related_services', // name of custom field
            'value' => '"' . get_the_ID() . '"',
            'compare' => 'LIKE'
        )
    )
));
if( $related_services ):
   foreach( $related_services as $related_service ):
      $icon = get_field('service_icon', $related_service->ID);
      echo $icon; 
endforeach;
endif; 

问题原因

  1. HTML实体错误:原代码中使用"作为双引号的HTML实体,但ACF Relationship字段在数据库中存储的是原始双引号包裹的ID,实体转换后无法匹配到正确的存储值。
  2. 缺少必要参数:未指定post_status,可能获取到非发布状态的帖子,导致无内容输出。
  3. 冗余手动查询:ACF Relationship字段本身提供了直接获取关联内容的方法,手动写meta_query容易因序列化存储格式的细节出错。

解决方法

方法一:使用ACF原生方法(推荐)

直接通过get_field获取关联服务,ACF会自动处理序列化数据的解析,无需手动写meta_query:

// 获取当前服务ID
$current_service_id = get_the_ID();
// 获取关联的服务列表
$related_services = get_field('related_services', $current_service_id);

if( $related_services ):
    foreach( $related_services as $related_service ):
        $icon = get_field('service_icon', $related_service->ID);
        echo $icon;
    endforeach;
endif;

方法二:修正meta_query参数

如果必须使用meta_query,需修正双引号的写法并补充必要参数:

$related_services = get_posts(array(
    'post_type'      => 'services',
    'post_status'    => 'publish', // 仅获取已发布的服务
    'meta_query'     => array(
        array(
            'key'       => 'related_services',
            'value'     => '"' . get_the_ID() . '"', // 使用原始双引号
            'compare'   => 'LIKE',
            'type'      => 'CHAR' // 指定字段类型为字符,避免自动类型转换
        )
    )
));

if( $related_services ):
    foreach( $related_services as $related_service ):
        $icon = get_field('service_icon', $related_service->ID);
        echo $icon;
    endforeach;
endif;

内容的提问来源于stack exchange,提问作者jayB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:37:40