函数未从短码接收字符串

时间:2017-07-17 作者:S_E

我正在尝试编写一个函数,该函数将使用从短代码发送的字符串(一旦工作,该字符串将是url),但它返回的只是函数中的默认值。

我的短代码是

[youtube thumb url videoUrl=“测试”]

我的功能如下:

add_shortcode(\'youtube-thumb-url\', \'get_youtube_thumb_url_func\');
function get_youtube_thumb_url_func($atts)
{
extract(shortcode_atts(array(
    \'videoUrl\' => \'urlhere\',
    ), $atts));

return $videoUrl;
}
它没有返回“test”,而是返回“urlhere”。如果“urlhere”为空,则不返回任何内容。

1 个回复
最合适的回答,由SO网友:Johansson 整理而成

看起来您不能像在短代码中那样使用大写字母。而不是videoUrl, 使用video-url:

function get_youtube_thumb_url_func( $atts ) {
    $atts = shortcode_atts(
        array(
            \'video-url\' => \'urlHere\',
        ), $atts, \'youtube-thumb-url\' );

    return $atts[\'video-url\'];
}
add_shortcode( \'youtube-thumb-url\', \'get_youtube_thumb_url_func\' );
和您的短代码:

[youtube thumb url视频url=“测试”]

这是我在发布之前测试的最后一个函数。

结束

相关推荐

Using shortcode in Post title

我有很多帖子,其中我有本月的帖子标题。当月底,手动更改所有帖子有点烦人。因此,我创建了一个短代码来显示当前月份。我使用了add_filter( \'the_title\', \'do_shortcode\' );执行标题中的短代码。一切正常。问题是,在元标题中,显示的是原始短代码,而不是输出。有什么建议可以帮我解决吗。提前谢谢。