在帖子内容中查找快捷码

时间:2015-02-17 作者:Daniel Garcia Sanchez

我有一篇帖子,里面有一段视频。因此,我的帖子内容如下:

“Lorem ipsum dolor sit amet,concetetur adipiscing elit。Curabitur aliquam quam sed imperdiet viverra。在ornare semper nisl,ac sodales metus facilisis ac。Morbi quis erat id magna dapibus consequeat。门廊sollicitudin hendrerit nisl sit amet lacinia。Mauris sed sodales quam。Mauris semper,ante quis imperdiet iaculis,neque eros pulvinar eros,id aliquet magna Mauris at sapien。sed sodales、 维尼那提斯·阿利夸姆·奥纳雷(diam venenatis aliquam ornare),尼斯勒·勒姆·阿库姆桑·厄洛斯(nisl lorem accumsan eros),维塔·苏西皮特·多洛(vitae suscipit dolor purus quis odio)。整数quis hendrerit sapien,位于pretium neque。拍卖人enim et malesuada。Suspendisse id酵母菌risus。。

[视频宽度=“100%”高度=“360”url=”http://www.youtube.com/watch?v=sd1273xA“]”

其中短代码显示为文本。。。我需要显示视频。。。使用do\\u短代码。

我在努力,但运气不好:

function your_prefix_detect_shortcode()
{
    global $post;

    $pattern = get_shortcode_regex();

    if (   preg_match_all( \'/\'. $pattern .\'/s\', $post->post_content, $matches )
            && array_key_exists( 2, $matches )
            && in_array( \'video\', $matches[2] ) )
    {
       echo do_shortcode("[$matches[0][0]]");
    }

}
add_action( \'wp\', \'your_prefix_detect_shortcode\' );

1 个回复
SO网友:jzatt

为了让你的短代码显示出来,你必须先注册它。这是用add_shortcode(). 您可以阅读更多关于Shortcode API 在法典中。

下面是一个接受3个参数的Youtube视频短代码示例;视频ID(来自Youtube,Youtube url的最后一部分),高度和宽度。这将进入您的功能。php文件,或在函数插件中。

<?php
function wpse178406_video_shortcode($atts, $content = null) {
    extract(shortcode_atts(array(
        "id" => \'\',
        "width" => \'560\',
        "height" => \'315\'
    ), $atts));
    return \'<iframe src="https://www.youtube.com/embed/\'. $id .\'" width="\'. $width .\'" height="\'. $height .\'" frameborder="0" allowfullscreen></iframe>\';
}
add_shortcode("video", "wpse178406_video_shortcode");
?>
然后在你的帖子中这样使用它[video id="sd1273xA"][video id="sd1273xA" width="200" height="150"] 指定宽度和高度。

结束

相关推荐

Children Shortcodes?

几周前我开始创建WordPress插件,我想知道是否有可能在其他一些插件中“嵌入”短代码。基本上,我想做的是根据插件用户输入的一组项目创建一个表或列表。有没有可能有这样的东西: [data] [item1] something [/item1] [item2] something else[/item2] [item3] something else[/item3] [/data] 简而言之,我想基于itemX“children”短代码中