webentwicklung-frage-antwort-db.com.de

Single Page Wordpress Theme - Verwenden von Seitenvorlagen

Nun, ich bin verloren, es ist spät und ich habe die ganze Nacht nach Google gesucht. Hier ist das Problem, auf das ich stoße. Ich versuche, eine Single-Page-Website mit WordPress "Seiten" zu erstellen. Wie ich das Thema ursprünglich eingerichtet habe, gibt es mehrere Seitenvorlagen für ex ('page-contact.php, page-gallery.php, page-map.php usw.'). Jede dieser Seitenvorlagen wird mit verschiedenen Meta-Boxen angepasst und die entsprechende Seitenvorlage ruft diese Metaboxen auf und erstellt die Seite. Dieser Teil ist in Ordnung und die einzelnen Seiten werden gut angezeigt. Wenn ich jedoch versuche, alle Seiten auf eine einzelne Seite abzufragen, habe ich Probleme.

Bisher kann ich alle Seiten anzeigen, aber nur mit einer Vorlage, sodass meine Seiten mit ihren benutzerdefinierten Meta- und Vorlagendateien nicht ordnungsgemäß gepostet werden. Ich habe den folgenden Code angehängt und frage mich, ob es eine Möglichkeit gibt, eine Variable in get_template_part ('page', $ template_name_of_page) aufzurufen, um die richtige Vorlage für jede Seite anzuzeigen.

<?php get_header(); ?>
<?php           
$args = array (
    'post_type'                => 'page',
    'post_parent'            => '29',
    'orderby'                => 'menu_order',
    'order'                  => 'ASC',
);

$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {    
        $query->the_post();    
        get_template_part('page', 'countdown');
    }
} else {

}   
wp_reset_postdata();    

?>
<?php get_footer(); ?>

TEMPLATE HIERARCHY

  1. LANDING PAGE OF WEBSITE - Sie möchten alle Seiten aufrufen und sie hier mit ihrer individuellen Vorlage anzeigen

    • LANDING PAGE - page-home.php (dies hat den obigen Codeabschnitt)

      • Portfolio - page-portfolio.php (Child of Landing Page - hat benutzerdefinierte Meta-Boxen, die in der Vorlagendatei aufgerufen werden)
      • map - page-map (Kind der Landing Page)
      • Kontakt - Seitenkontakt (Child of Landing Page)
3
Derrick Workman

Nun, ich glaube, ich scheine auch das zu tun, was ich vorhatte. Danke @Milo, dass du mich in die richtige Richtung gelenkt hast! Wie Sie unten sehen können, habe ich get_page_template_slug () verwendet. und str_replace (), um durch die pro Seite verwendeten Vorlagen zu filtern.

Kann jemand überprüfen, ob dies eine praktikable Option ist?

$args = array (
    'post_type'                => 'page',
    'post_parent'            => '29',
    'orderby'                => 'menu_order',
    'order'                  => 'ASC',
);

$query = new WP_Query( $args );


if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {

        $query->the_post();
        $tn = get_page_template_slug( $post_id );
        $Word = array("page-", ".php",' ');
        $template = str_replace($Word,'',$tn);

        get_template_part('page', $template);
    }
} else {

}
2
Derrick Workman

Nun, Sie können eine einzige Vorlage für die gesamte Site erstellen und unter Verwendung des folgenden Codes unterschiedliche Seiteninhalte in unterschiedlichen <div> aufrufen:

<?php
 $page_id = 47;
 $page_data = get_page( $page_id );
 echo $page_data->post_content ;
 ?>
0
Milople Inc