嗨:D我需要在主页上显示youtube上的缩略图,我有一个wordpress函数和循环的代码,但不能从youtube上显示缩略图。代码可能有什么问题?
功能代码:
  function get_thumbnail_fromyoutube( $size = 0 ) {
      global $post, $posts;
      $youtube = \'\';
      $get_url = preg_match_all(\'/<iframe.+src=[\\\'"]([^\\\'"]+)[\\\'"].*>/i\', $post->post_content, $matches);
      $youtube = $matches[1][0];
      if(preg_match(\'/^(http:\\/\\/www.youtube.com)/\', $youtube))
      {
        $youtube = preg_replace(\'/(.*?).embed\\//\', \'\', $youtube);
        $youtube = preg_replace(\'/\\?.(.*?)$/\', \'\', $youtube);
        echo \'<img src="http://img.youtube.com/vi/\' . $youtube . \'/\' . $size . \'.jpg" alt="\' . $post->post_title . \'" />\';
      }
    }
 循环代码:
<?php
$args = array(
    \'tax_query\' => array(
        array(
            \'posts_per_page\' => 1,
            \'order\' => \'DESC\',
            \'taxonomy\' => \'section\',
            \'field\' => \'slug\',
            \'terms\' => \'video\'
        )
    )
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
         ?>
<img src="<?php echo has_post_thumbnail() ? the_post_thumbnail(\'thumbnail\') : get_thumbnail_fromyoutube(); ?>" alt="<?php the_title(); ?>"/>
<?php
                        }
                      }
                    wp_reset_query();  // Restore global post data stomped by the_post().
                    ?> 
 
                SO网友:javierguillen29
                好吧,假设帖子内容将由Youtube嵌入代码提供,则需要对正则表达式进行更改。
函数必须获取iframe的源。具体如下:
function get_thumbnail_fromyoutube( $size = 0 ) {
global $post, $posts;
$youtube = \'\';
$get_url = preg_match_all(\'/src="([^"]+)"/\', $post->post_content, $matches);
$youtube = $matches[1][0];
var_dump($youtube);
if(preg_match(\'/^(http:\\/\\/www.youtube.com)/\', $youtube)) {
    $youtube = preg_replace(\'/(.*?).embed\\//\', \'\', $youtube);
    $youtube = preg_replace(\'/\\?.(.*?)$/\', \'\', $youtube);
    echo \'<img src="http://img.youtube.com/vi/\' . $youtube . \'/\' . $size . \'.jpg" alt="\' . $post->post_title . \'" />\';
}
 }
其中变量“get\\u url”存储视频的url。
并始终记住删除循环中的“img”标记,只留下条件语句。
<?php if (has_post_thumbnail()) ? the_post_thumbnail(\'thumbnail\') : get_thumbnail_fromyoutube(); ?>