Функция WordPress с атрибутом переходит к шаблону

действительно новичок в этом.

Я вообще хочу создать короткий код с атрибутом, который вызывает функцию playlist_code, которая вставляет шаблон с этим атрибутом.

Это мой код до сих пор, я не могу заставить файл шаблона использовать атрибут, объявленный в функции. Если я использую return для проверки значения $ tp_atts ['id'], я получаю правильный вывод, но я не могу его вызывать из созданного шаблона.

Функция:

function playlist_code( $atts ){ $tp_atts = shortcode_atts(array('id' => '1'), $atts, 'playlist_code'); locate_template('template-parts/single_playlist.php', true); } add_shortcode('playlist_code', 'playlist_code'); 

Шаблон:

 <div class="playlist_container"> <?php $tracks = get_post_meta($tp_atts['id'], 'tracks', true); $list = explode(',', trim($tracks)); if ( $list ){ ?> <div class="list-group list-group-lg"> <?php $args = array( 'posts_per_page' => -1, 'orderby' => 'post__in', 'order' => 'DESC', 'post_type' => 'download', 'post__in' => $list ); $postsi = get_posts($args); foreach ( $postsi as $post ) : setup_postdata( $post ); ?> <div class="list-group-item"> <?php get_template_part( 'template-parts/content', 'download-list' ); ?> </div> <?php endforeach; wp_reset_postdata(); ?> </div> <?php } ?> </div>