Ich würde hier eine einfache WP_Query Instanz verwenden und verwenden Sie folgenden Code:
<?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;
?>
Einfach und effektiv, 1 Abfrage ist alles was benötigt wird. Fügen Sie einfach weitere Post-IDs hinzu, wenn Sie weitere Abschnitte wünschen.
Wenn Sie die Verwendung von Post-IDs als Bestellparameter vermeiden möchten, verwenden Sie stattdessen: menu_order
. Und wenn Sie den Parameter post__in
vermeiden möchten, können Sie alle Seiten zu einem übergeordneten Element hinzufügen und die übergeordnete Post-ID verwenden und alle untergeordneten Elemente für die Abschnitte abrufen. Dies würde die Lösung ein wenig modularer machen.
Lesen Sie mehr über WP_Query hier: https://codex.wordpress.org/Class_Reference/
Dankten mir geholfen. Und wenn meine Abteilung andere CSS haben? @MrZiggyStardust – user3242861
Verwenden Sie einfach die Funktion post_class() im Abschnitt Element. https://codex.wordpress.org/Function_Reference/post_class - Und style alle Abschnitte aus den unterschiedlich generierten CSS-Klassen. – MrZiggyStardust