我正在尝试创建一个自定义短代码,它使用另一个短代码为网格上的几个音频播放器使用Visual Composer显示自定义帖子类型。
我想使用的音频播放器是Compact audio player插件,它使用了[sc_embed_player fileurl="URL OF THE MP3 FILE"]
.
我想做的是创建2个自定义短代码,将正确的mp3 url注入fileurl=" "
栅格加载时的路径。我正在使用高级自定义字段和代码,这些代码用于我的functions.php
现在是(我计划复制,当我可以让这一个为另一个短代码工作时):
function get_generic_demo() {
$demo = get_field( \'generic_demo\');
echo do_shortcode(\'[sc_embed_player fileurl="\'.$demo[\'url\'].\'"]\');
}
add_shortcode( \'generic_demo\', \'get_generic_demo\');
然而,它给了我一个错误,当输入自定义快捷码时网格显示时,我没有输入有效的url。
我尝试了设置从ACF返回到文件url和数组(如上所述)。
我也尝试过:
$demo = get_field( \'generic_demo\', $post->ID);
任何帮助都将不胜感激
SO网友:Ryan
如果这能解决问题,我不是百分之百肯定,但请尝试将全局post变量拉入您的shortcode声明函数:
function get_generic_demo() {
global $post;
//Get the field\'s value
$demo = get_field(\'generic_demo\');
//Save the URL into a variable
$url = $demo[\'url\'];
// Pass it to the other shortcode and return its value
return do_shortcode(\'[sc_embed_player fileurl="\'.$url.\'"]\');
}
add_shortcode( \'generic_demo\', \'get_generic_demo\');
响应编辑-2017-06-20@上午11:45**
问题似乎是,无论Visual Composer如何构建网格,CPT ID都没有得到确认。如何为每个项目条目设置其余数据(即每个项目的标题和说明)?您是手动将其输入网格还是自动生成?