WooCommerce自定义标签输出ACF oEmbed字段遇语法错误如何解决?
错误原因
- 你当前已经处于PHP代码执行上下文,不需要在
echo的内容里再次嵌套<?php ?>标签,嵌套的标签会被PHP识别为非法语法 - 你使用单引号包裹
echo输出的整体字符串,内部又使用单引号包裹ACF字段名virtual_video_tour,导致外层单引号被提前闭合,后续字符串被识别为无效的语法标记,触发你看到的T_STRING报错
修复后代码
完整可运行的代码如下:
add_filter( 'woocommerce_product_tabs', 'woo_virtual_tour_tab' ); function woo_virtual_tour_tab( $tabs ) { $tabs['virtualtour_tab'] = array( 'title' => __( 'Video Tour', 'woocommerce' ), 'priority' => 50, 'callback' => 'woo_virtual_tour_tab_content' ); return $tabs; } function woo_virtual_tour_tab_content () { // 输出容器标签开头 echo '<div class="embed-container">'; // 直接调用ACF方法输出oEmbed视频内容,无需嵌套PHP标签 the_field('virtual_video_tour'); // 输出容器标签结尾 echo '</div>'; }
补充说明
如果你的ACF字段设置为返回视频URL而非渲染后的嵌入代码,可替换内容部分为以下代码实现自动解析oEmbed:
$video_url = get_field('virtual_video_tour'); if ($video_url) { echo wp_oembed_get( $video_url ); }
内容的提问来源于stack exchange,提问作者Ross
相关产品推荐
相关产品推荐

