Пользовательский ярлык youtube, который использует $ content

Я хочу сделать простой shortcode, который возвращает ссылку youtube в указанном размере и использует контент. Что-то вроде:

[yt]http://youtu.be/Nl29v5pfxTw[/yt] 

У меня есть этот код, но я хочу его упростить:

  function youtube($atts) { extract(shortcode_atts(array( "value" => 'http://', "width" => '620', "height" => '350', "name"=> 'movie', "allowFullScreen" => 'true', "allowScriptAccess"=>'always', ), $atts)); return '<object style="height: '.$height.'px; width: '.$width.'px"><param name="'.$name.'" value="'.$value.'"><param name="allowFullScreen" value="'.$allowFullScreen.'"></param><param name="allowScriptAccess" value="'.$allowScriptAccess.'"></param><embed src="'.$value.'" type="application/x-shockwave-flash" allowfullscreen="'.$allowFullScreen.'" allowScriptAccess="'.$allowScriptAccess.'" width="'.$width.'" height="'.$height.'"></embed></object>'; } add_shortcode("yt", "youtube"); 

Проблема в том, что с этим кодом мне нужно использовать [yt value = "http://youtu.be/Nl29v5pfxTw"], и я хочу просто использовать [yt] $ content [/ yt]

Как я могу это достичь?

благодаря

Solutions Collecting From Web of "Пользовательский ярлык youtube, который использует $ content"

Функции Shortcode принимают второй параметр, который содержит значение между ярлыками открытия и закрытия короткого кода:

 function youtube( $atts, $value = 'http://' ) { extract( shortcode_atts( array( "width" => '620', "height" => '350', "name"=> 'movie', "allowFullScreen" => 'true', "allowScriptAccess"=>'always', ), $atts ) ); return '<object style="height: '.$height.'px; width: '.$width.'px"><param name="'.$name.'" value="'.$value.'"><param name="allowFullScreen" value="'.$allowFullScreen.'"></param><param name="allowScriptAccess" value="'.$allowScriptAccess.'"></param><embed src="'.$value.'" type="application/x-shockwave-flash" allowfullscreen="'.$allowFullScreen.'" allowScriptAccess="'.$allowScriptAccess.'" width="'.$width.'" height="'.$height.'"></embed></object>'; } add_shortcode( 'yt', 'youtube' ); 

Функция обратного вызова должна принимать второй параметр.

 function youtube($atts, $content) { extract(shortcode_atts(array( "value" => 'http://', "width" => '620', "height" => '350', "name"=> 'movie', "allowFullScreen" => 'true', "allowScriptAccess"=>'always', ), $atts)); return '<object style="height: '.$height.'px; width: '.$width.'px"><param name="'.$name.'" value="'.$content.'"><param name="allowFullScreen" value="'.$allowFullScreen.'"></param><param name="allowScriptAccess" value="'.$allowScriptAccess.'"></param><embed src="'.$content.'" type="application/x-shockwave-flash" allowfullscreen="'.$allowFullScreen.'" allowScriptAccess="'.$allowScriptAccess.'" width="'.$width.'" height="'.$height.'"></embed></object>'; } 

Я считаю, что это правильно. В Кодексе есть примеры того, как это сделать.