Я хотел бы использовать простой пример WP_Query здесь, и используйте следующий код:
<?php
// Set the WP_Query arguments
$args = array(
'post_type' => 'page',
// You need to change this to match your post IDs
'post__in' => array(10, 20, 30),
'order_by' => 'post__in',
'order' => 'DESC' // Might need to change this to "ASC"...
);
// Create the page section query
$page_section_query = new WP_Query($args);
// Simple check...
if($page_section_query->have_posts()) :
while($page_section_query->have_posts()) :
$page_section_query->the_post();
global $post;
// Print out the section!
?>
<section id="<?php echo esc_attr($post->post_name) ?>" <?php post_class(array(esc_attr('page-section-' . $post->post_name))); ?>>
<!-- contents of the page section -->
</section>
<?php
endwhile;
wp_reset_postdata();
endif;
?>
Простой и эффективный, 1 запрос - это все, что вам нужно. Просто продолжайте добавлять больше идентификаторов сообщений, если хотите больше разделов.
Если вы хотите избежать использования почтовых идентификаторов в качестве параметра порядка, вы можете использовать вместо этого: menu_order
. И если вы хотите избежать использования параметра post__in
, вы можете добавить все страницы в родительский адрес страницы и использовать идентификатор родительского сообщения и получить все дочерние страницы страниц для этих разделов. Это сделало бы решение более модульным.
Подробнее о WP_Query здесь: https://codex.wordpress.org/Class_Reference/
Спасибо за помощь мне. И если моя секция имеет разные css? @MrZiggyStardust – user3242861
Просто используйте функцию post_class() внутри элемента секции. https://codex.wordpress.org/Function_Reference/post_class - И создайте все разделы из разных классов CSS. – MrZiggyStardust