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

WordPress(Divi)中ACF动态视频缩略图显示故障求助(短代码实现)

问题分析与解决方案

你的代码存在两个核心问题导致缩略图无法加载,同时视频输出逻辑也不符合短代码要求:

问题1:ACF文件字段返回值处理错误

ACF的「文件字段」默认返回文件对象数组(而非直接的URL字符串),直接将数组赋值给mp4和poster属性会生成无效路径,导致缩略图加载失败。

问题2:短代码返回值不符合要求

WordPress短代码要求返回HTML字符串,但你的代码直接返回了数组,这会导致系统无法解析出正确的视频标签结构。


修正后的完整代码

// 短代码执行函数
function wpb_video_shortcode() { 
    // 获取ACF字段,兼容文件对象/URL两种返回格式
    $video_mp4 = get_field('video_mp4');
    $video_thumbnail = get_field('video_thumbnail');

    // 提取文件URL(处理ACF字段的两种返回模式)
    $mp4_url = is_array($video_mp4) ? $video_mp4['url'] : $video_mp4;
    $poster_url = is_array($video_thumbnail) ? $video_thumbnail['url'] : $video_thumbnail;

    // 构建视频属性数组
    $attr = array(
        'mp4'      => $mp4_url,
        'poster'   => $poster_url,
        'preload'  => 'auto'
    );

    // 使用WordPress内置函数生成标准HTML5视频代码
    return wp_video_shortcode($attr);
}
// 注册短代码
add_shortcode('course_video', 'wpb_video_shortcode');

关键说明

  • ACF字段兼容:通过is_array()判断字段返回类型,无论是「文件对象」还是「文件URL」模式,都能正确提取有效路径
  • 标准视频标签生成:调用wp_video_shortcode()函数生成符合WordPress规范的HTML5视频标签,确保在Divi主题中正常渲染
  • 短代码规则适配:返回完整的HTML字符串,严格符合WordPress短代码的执行要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:15:29