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

ACF用户动态图片字段无法正常显示问题求助

问题:ACF用户图片字段仅返回ID,无法显示实际图片

我用Elementor Pro搭建用户仪表盘,通过ACF展示各类动态内容,其他字段都正常工作,但用户的动态图片字段只显示图片ID,不显示实际图片。

为文章添加自定义图片字段时,以下代码可以正常运行:

<?php
$image = get_field($post_image); 
$pic = $image['sizes']['large'];
?>

<p><?php echo $pic; ?></p>
<?php var_dump($image);?>

但调用用户的图片字段时,两段代码都只返回图片ID,且文章和用户的ACF图片字段设置完全一致:

第一段代码:

<?php
$user_id = get_current_user_id();
$user = get_user_by( 'id', $user_id);
$userimg = get_field("$realtor_image",$user);
if( $userimg ) {
    echo $userimg;
} else {
    echo 'empty';
}
?>

第二段代码:

<?php
$user_id = get_current_user_id();
$user = get_user_by( 'id', $user_id);
$userimg = $user->realtor_image; 
?>

<p><?php echo $user->realtor_image; ?></p>
<?php var_dump($userimg);?>

我已经尝试修改ACF图片字段的返回格式,但问题依然存在,希望得到帮助。

输出截图说明:页面上仅显示一串数字(图片ID),无图片内容。
图片字段设置截图说明:ACF图片字段设置为“返回图像对象”,与文章字段的设置一致。


解决方法

1. 修正get_field的用户参数格式

调用用户的ACF字段时,推荐将第二个参数指定为"user_{$user_id}"格式的字符串(而非直接传用户对象),避免兼容性问题:

<?php
$user_id = get_current_user_id();
// 明确指定用户ID前缀
$userimg = get_field('realtor_image', "user_{$user_id}");
if( $userimg && is_array($userimg) ) {
    // 渲染large尺寸图片
    echo '<img src="' . esc_url($userimg['sizes']['large']) . '" alt="用户图片">';
} else {
    echo 'empty';
}
?>

2. 手动通过ID获取图片URL

如果仍只返回图片ID,可使用WordPress原生函数wp_get_attachment_image_src转换为图片URL:

<?php
$user_id = get_current_user_id();
$userimg_id = get_field('realtor_image', "user_{$user_id}");
if( $userimg_id ) {
    $image_data = wp_get_attachment_image_src($userimg_id, 'large');
    if( $image_data ) {
        echo '<img src="' . esc_url($image_data[0]) . '" alt="用户图片">';
    }
} else {
    echo 'empty';
}
?>

3. 排查Elementor动态标签设置

若通过Elementor可视化调用字段,确保选择ACF图片字段而非通用“自定义字段”——通用自定义字段会直接返回原始ID值,而ACF图片标签会自动处理渲染逻辑。

4. 同步ACF字段缓存

进入WordPress后台的ACF设置 → 工具,点击“同步字段组”,确保用户字段的配置已生效,然后刷新仪表盘页面。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:25:40