Мне нужно добавить короткий код в моей теме, и я хотел бы поместить код HTML не в функцию, которая создает короткий код, а в файл шаблона в моем каталоге тем.
Теперь у меня есть
function wpse450_show_video( $atts ) { extract(shortcode_atts(array( 'id' => 0 ), $atts )); if( is_numeric($id) ) { $ngvideo_title = get_the_title($id); } return '<div>'.$ngvideo_title.'</div>'; } add_shortcode( 'ngvideo', 'wpse450_show_video' );
Я хотел бы добавить материал <div>'.$ngvideo_title.'</div>
во внешний файл.
Как это сделать?
function wpse450_show_video( $atts ) { extract(shortcode_atts(array( 'id' => 0 ), $atts )); if( is_numeric($id) ) { $ngvideo_title = get_the_title($id); } ob_start(); include 'path/to/file/video.php'; return ob_get_clean(); } add_shortcode( 'ngvideo', 'wpse450_show_video' );
Вы можете использовать $ id, $ atts в нашем файле, как и в вашей функции. Код в вашем файле будет вести себя так же, как и в вашей функции, только с одной разницей, что вам придется эхо-материал вместо того, чтобы возвращать его, как и для вашей функции