WordPress Snippet

ワードプレスをカスタマイズしよう

template_part_fileで、投稿に含まれる最初のyoutubeを一覧で表示する。

get_template_file()で呼び出す、テンプレートパートファイルに、コードを記述して 特定の場所に、youtubeを一覧で表示するものです。

Raindropsテーマのサンプル用なので、読み替えてください。

hook-after-nav-menu.php(レインドロップステーマで、メニュー下部に表示するためのテンプレートで、ファイル名が一致すれば自動的にインクルートします。)

<?php

global $shortcode_tags;

$args= array('width'=> 300, 'height'=> 200);

if ( have_posts() ) {
	$youtube= array();
	 while( have_posts() ) {

	 	the_post();

	 	preg_match('!(https?:\/\/)?(www\.)?(youtube\.com |youtu\.?be)\/[A-z0-9]+!', get_the_content( ) ,$matches);
		if( ! empty( $matches )){
			$youtube[]= esc_url( $matches[0] );
		}
	 }
	 rewind_posts();
}
$result='<div style="width:100%;height:200px;border:1px solid #ccc;padding-top:1em;">';

foreach($youtube as $tube){
	$result .= '<div style="display:inline-block;margin-right:1em">';
	//$result .= wp_oembed_get( $tube , $args ); or
	$attr= array( 'src'=> $tube, 'width'=> 300,'height'=> 200 );
	$result .= wp_video_shortcode( $attr ); 
	$result .= '</div>';
}

$result .= '</div>';
echo $result;
?>