get_template_part возвращает NULL

Я делаю сайт на одной странице. У меня есть настраиваемый цикл, который подключен к навигации, так что в цикле будут отображаться только сообщения, которые находятся в навигации. Я обнаружил, что использование get_template_part не возвращает никаких шаблонов. Я назначил его переменной для проверки и получил NULL.

if (($locations = get_nav_menu_locations()) && $locations['primary'] ) { $menu = wp_get_nav_menu_object( $locations['primary'] ); $menu_items = wp_get_nav_menu_items($menu->term_id); $pageID = array(); foreach($menu_items as $item) { if($item->object == 'page') $pageID[] = $item->object_id; } $args = array( 'post_status' => 'publish', 'post_type' => array( 'post','page' ), 'order' => 'ASC', 'orderby' => 'menu_order', 'post__in' => $pageID, 'posts_per_page' => -1, 'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1 ); $home_query = new WP_Query($args); } if ( $home_query->have_posts() ) : while ( $home_query->have_posts() ) : $home_query->the_post(); ?> <?php $template_name = get_post_meta( $post->ID, '_wp_page_template', true ); if( $template_name != 'default' && $template_name != 'template-home.php') : ?> <li id="page_<?php echo str_replace(' ','_', strtolower(get_the_title())); ?>"> <?php //require($template_name); ?> <!--template-home.php--> <li id="page_<?php echo str_replace(' ','_',strtolower( get_the_title())); ?>"> switch($template_name){ case 'template-band.php': get_template_part('template', 'band.php'); break; case 'template-band.php': get_template_part('template', 'contact.php'); break; case 'template-band.php': get_template_part('template', 'discography.php'); break; case 'template-band.php': get_template_part('template', 'gallery.php'); break; case 'template-band.php': get_template_part('template', 'news.php'); break; case 'template-band.php': get_template_part('template', 'scroll.php'); break; case 'template-band.php': get_template_part('template', 'shows.php'); break; case 'template-band.php': get_template_part('template', 'video.php'); break; <?php } ?> </li> <?php endif; endwhile; endif; ?> 

То, что я обнаружил в WordPress, заключается в том, что если вы пытаетесь загрузить страницы на первой странице, в основном они будут игнорировать все, кроме текста в визуальном редакторе. Шаблоны и большинство других форматов не применяются. То, что я не смог понять, почему?

Solutions Collecting From Web of "get_template_part возвращает NULL"

Поскольку на странице codex get_template_part() говорится:

get_template_part не возвращает значение и не предупреждает, если ему не удается найти соответствующий файл шаблона.

Дополнительно:

Если вы хотите услышать о сбоях, используйте:
<?php assert( "locate_template( array('$name-$slug.php', '$name.php'), true, false )" ); ?>

Поэтому неудивительно, что вы ничего не получили.

Одна вещь, которую я вижу, это то, что вы добавляете расширение файла к параметру $name . Что, по сути, означает, что вы ищете файлы с именем: slug-name.php.php , я сомневаюсь, что это то, что вы хотите. Имена файлов построены следующим образом: {$slug}-{$name}.php , что означает, что get_template_part() автоматически добавляет расширение файла, как вы можете обнаружить, посмотрев на источник , кроме того, что он явно указан на странице codex ,