回显来自url或快捷代码的YouTube代码

时间:2011-01-27 作者:Саша Стефановић

我想要一个功能,可以扫描wordpress帖子中的youtube链接或youtube短代码,找到后,使用regex只从url中选择代码(如“2SaZO4Gmfdc”)并回显该代码。

现在,我编辑了一个插件,这个插件做得非常好,但它并没有回应代码,而是回应类似img的东西。youtube。com/vi/2SaZO4Gmfdc/0。jpg

现在,我有这个代码http://pastebin.com/6M70xpTX 它不起作用,而起作用的插件代码就在这里。com/MX2fca96

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

你好@Саша Стефано:

也许我遗漏了什么,但乍一看,你只需要添加一个return 语句(我还没有测试过这段代码,所以如果不是,请告诉我,我会深入研究解决):

function get_youtube_kod($post_id=null) {
  // Get the post ID if none is provided
  if($post_id==null OR $post_id==\'\') $post_id = get_the_ID();

    // Gets the post\'s content
    $post_array = get_post($post_id); 
    $markup = $post_array->post_content;

    // Checks for a standard YouTube embed
    preg_match(\'#<object[^>]+>.+?http://www.youtube.com/v/([A-Za-z0-9\\-_]+).+?</object>#s\', $markup, $matches);

    // Checks for any YouTube URL
    if(!isset($matches[1])) {
      preg_match(\'#http://w?w?w?.?youtube.com/watch\\?v=([A-Za-z0-9\\-_]+)#s\', $markup, $matches);
    }

    // If no standard YouTube embed is found, checks for one embedded with JR_embed
    if(!isset($matches[1])) {
      preg_match(\'#\\[yt url=([A-Za-z0-9\\-_]+)]#s\', $markup, $matches);
    }

    if(!isset($matches[1])) {
      preg_match(\'#\\[yt url=([A-Za-z0-9\\-_]+)[^>]*]#s\', $markup, $matches);
    }

    // If we\'ve found a YouTube video ID, create the thumbnail URL
    if(isset($matches[1])) {
      $youtube_kod = $matches[1];  
    }
    return $youtube_kod;

};

结束

相关推荐

获取在Functions.php中设置的变量,并在我的Custom Post模板中回显它们

在我的函数中设置了以下函数。php文件,以允许我的自定义帖子类型“Slideshow”工作。add_action( \'the_post\', \'paginate_slide\' ); function paginate_slide( $post ) { global $pages, $multipage, $numpages; if( is_single() && get_post_type() == \'lom_s