Отображение нескольких страниц на одной странице WordPress
У меня есть следующий код (любезно предоставленный alchemyth в ответ на мой вопрос на форуме WordPress.org здесь), который я хочу использовать для отображения множества страниц на одной странице:
<?php
$args = array(
'post_type' => 'page',
'post__in' => array( 2, 5, 35, 67 ) //список ID страниц
);
$page_query = new WP_Query( $args );
if( $page_query->have_posts() ) :
echo '<div class="pages-on-page">';
//здесь можно вывести общий заголовок или шапку//
while( $page_query->have_posts() ) : $page_query->the_post();
echo '<div class="page-on-page" id="page_id-' . $post->ID . '">';
//вывод содержимого для каждой страницы//
echo '</div>';
endwhile;
echo '</div>';
else:
//текст, если страницы не найдены//
endif;
wp_reset_postdata();
?>
Как новичок, я не уверен, куда его вставить, чтобы он заработал! Буду очень благодарен за помощь в этом вопросе.

Ознакомьтесь с шаблонами страниц WordPress;
Вы можете создать файл со структурой, соответствующей вашей текущей теме, и разместить ваш код в области контента (или добавить хук для вашего специального контента).
Пример для темы Twenty Twelve:
/*
Template Name: Мой пользовательский шаблон страницы
*/
get_header(); ?>
<div id="primary" class="site-content">
<div id="content" role="main">
<?php
$args = array(
'post_type' => 'page',
'post__in' => array( 2, 5, 35, 67 ) //список ID страниц
);
$page_query = new WP_Query( $args );
if( $page_query->have_posts() ) :
echo '<div class="pages-on-page">';
//здесь можно вывести общий заголовок или верхний колонтитул//
while( $page_query->have_posts() ) : $page_query->the_post();
echo '<div class="page-on-page" id="page_id-' . $post->ID . '">';
//выведите любое содержимое для каждой страницы//
echo '</div>';
endwhile;
echo '</div>';
else:
//опциональный текст, если страницы не найдены//
endif;
wp_reset_postdata();
?>
</div><!-- #content -->
</div><!-- #primary -->
****Не забудьте начать файл с < ? php
Сохраните этот код как PHP-файл с практически любым именем ваш_пользовательский_шаблон.php
и поместите его в папку вашей дочерней темы. Затем создайте новую страницу и назначьте ей шаблон страницы Мой пользовательский шаблон страницы
, как показано в коде выше.
Это должно помочь вам начать и увидеть ваш код на фронтенде сайта.

Я разместил код на странице с помощью php-плагина, используя 'шаблон по умолчанию' и 'без родительской страницы' - но не работает - что я делаю не так?

Для начала мне нужно знать, о каком именно плагине идет речь. Но прежде чем это - вы ознакомились со ссылкой на WordPress Codex, которую я дал в своем ответе?

Плагин находится здесь. И да, я посмотрел, но должен признать, что многое для меня непонятно - буду разбираться дальше!

Какую тему вы используете? Возможно, я смогу помочь вам с примером шаблона.

Я использую twentytwelve — но создал дочернюю тему, так как уже внес некоторые изменения.

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

У вас есть доступ по FTP к вашему сайту? Вы можете перетащить файл в папку

Просто обновите страницу редактирования в админке WordPress. Теперь шаблон должен появиться в выпадающем списке шаблонов страницы

К сожалению, безрезультатно - простите, это, должно быть, очень раздражает - я явно упускаю что-то очевидное!

Я просто копирую приведенный выше код и добавляю < ? php в начале, правильно?

Я попробовал добавить его в папку public_html (корневую папку) и вызвать напрямую в адресной строке - просто белая страница :(

Я должен сказать +1 за вашу помощь - жаль, что у меня не получилось заставить это работать! :/

Вам нужно добавить код для вывода //выводите любой вывод, который вам нужен на странице//

Этот код работает для меня с темой WP Twenty Twelve, не забудьте изменить ID страниц
<?php
/*
Template Name: Моя пользовательская страница
*/
get_header();
$args = array(
'posts_per_page' => get_option('posts_per_page'), // значение по умолчанию берётся из настроек, но вы можете использовать и собственное
'paged' => $current_page // текущая страница
);
query_posts(
array( 'post_type'=>'page', 'post__in' => array( 6891, 9400 ) ) //измените ID страниц
); ?>
<div id="primary" class="site-content">
<div id="content" role="main">
<?php
while ( have_posts() ) :
the_post();
?>
<?php if ( has_post_thumbnail() ) : ?>
<div class="entry-page-image">
<?php the_post_thumbnail(); ?>
</div><!-- .entry-page-image -->
<?php endif; ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php endwhile; // конец цикла. ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Привет! Спасибо за ваш вклад и добро пожаловать на WordPress.StackExchange! Несколько моментов, которые стоит учесть для возможного [редактирования] вашего ответа, что может принести больше голосов "за" и, следовательно, открыть больше возможностей для вас на этом сайте: Пожалуйста, учитывайте, что не все могут читать кириллические символы. Также полезно объяснить, почему ваш фрагмент кода поможет автору вопроса решить его проблему. Надеюсь, это поможет! Хорошего дня!
