如何在WordPress短代码中获取自定义字段值?
问题解决方法
你的代码问题出在单引号字符串无法解析变量——PHP里单引号包裹的内容会原样输出,所以{$audio_source}并没有被替换成实际获取到的字段值。
修复方案
方案1:改用双引号包裹短代码字符串
把包裹短代码的单引号换成双引号,同时转义内部的双引号:
<?php $audio_source = get_post_meta($post->ID, 'audio_url', true); echo do_shortcode(" [zoomsounds_player config=\"motionplayer\" source=\"{$audio_source}\"] "); ?>
方案2:使用字符串拼接
通过.连接字符串和变量,避免引号解析问题:
<?php $audio_source = get_post_meta($post->ID, 'audio_url', true); echo do_shortcode('[zoomsounds_player config="motionplayer" source="' . $audio_source . '"]'); ?>
额外检查点
- 先通过
var_dump($audio_source);确认get_post_meta是否成功获取到了字段值,如果输出bool(false),说明该文章没有设置audio_url字段,或者字段名称有误。 - 确保代码所在位置能正确获取到
$post->ID——如果不在WordPress循环内,需要先全局声明global $post;,或者传入具体的文章ID。
内容的提问来源于stack exchange,提问作者Tural
相关产品推荐
相关产品推荐

