Включить страницы шаблонов в другой шаблон?

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

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

<?php //change to the title of the pages you want to feature $page = get_page_by_title( 'About' ); $page_data = get_page($page); // Displays the content echo apply_filters('the_content', $page_data->post_content); ?> 

Это отлично работает для большинства страниц, кроме тех, которые полагаются на сами шаблоны. Я «думаю», что мне нужно включить что-то «получить часть шаблона», но я недостаточно опытен, чтобы понять, как использовать в этой ситуации и использовать какую-то помощь?

благодаря

Solutions Collecting From Web of "Включить страницы шаблонов в другой шаблон?"

Функция get_page() устарела , не используйте ее больше, вместо этого используйте get_post() . get_page_by_title() возвращает объект по умолчанию, вы можете изменить его, изменив параметр $output , который вы можете использовать, как и вы. Хотя get_post() может принимать объект как параметр $id я лично предпочитаю вводить идентификатор, но это фактически не имеет значения.

 $page = get_page_by_title( 'About' ); $page_data = get_post( $page->ID ); echo $page_data->post_content; 

То, что вы описываете, по крайней мере на основе кода в вашем вопросе, не должно иметь ничего общего с шаблонами или get_template_part() , потому что post_content который вы получаете, не зависит от этого. Разумеется, дело будет отличаться от этого, если то, что вам не хватает на тех страницах, о которых вы говорите, на самом деле не является частью post_content , но ваш вопрос не указывает на это.

Мой пример выводит страницы из меню навигации:

 $menu_id = 2; //insert your menu id here $menu_items = wp_get_nav_menu_items($menu_id); if( !empty( $menu_items ) ){ foreach ($menu_items as $menu_item){ wp_reset_postdata(); if ($menu_item->object == 'page'){ $post = get_page($menu_item->object_id); setup_postdata($post); $template_name = get_post_meta( $post->ID, '_wp_page_template', true ); $template_name = str_replace('.php', '', $template_name); if($template_name == 'default') $template_name = 'tpl_default_page'; ?> <div class="page-content"> <?php get_template_part($template_name); ?> </div> <?php } } } 

Кроме того, ваши шаблоны не должны иметь get_header() или get_footer() .