Eh bien, je suis perdu, il est tard et j'ai cherché sur Google toute la nuit. Voici le problème que je rencontre. J'essaie de créer un site Web à page unique en utilisant des "pages" wordpress. La configuration initiale du thème est la suivante: il existe plusieurs modèles de page pour ex ("page-contact.php, page-gallery.php, page-map.php, etc."). Chacun de ces modèles de page est personnalisé avec différentes méta-boîtes et le modèle de page correspondant appelle ces métaboxes et crée la page. Cette partie est correcte et les pages individuelles s'affichent bien. Cependant, lorsque j'essaie d'interroger toutes les pages sur une seule page, c'est là que j'ai des problèmes.
Jusqu'à présent, toutes les pages s'affichent, mais avec un seul modèle. Les pages ne s'affichent donc pas correctement avec leur méta personnalisé et leur fichier de modèle personnalisé. J'ai joint le code ci-dessous. Je me demande s'il existe un moyen d'appeler une variable dans get_template_part ('page', $ template_name_of_page) pour afficher le modèle approprié pour chaque page.
<?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(); ?>
HIERARCHIE DES MODELES
LANDING PAGE OF WEBSITE - Voulez-vous extraire toutes les pages et les afficher avec leur modèle individuel ici
LANDING PAGE - page-home.php (ceci a la section de code ci-dessus)
Eh bien, je pense que je semble faire ce que je voulais aussi. Merci @Milo de m'avoir orienté dans la bonne direction! Comme vous pouvez le voir ci-dessous, j'ai utilisé la méthode get_page_template_slug (); et str_replace () pour filtrer les modèles utilisés par page.
Quelqu'un peut-il vérifier qu'il s'agit d'une option viable?
$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 {
}
Vous pouvez créer un seul modèle pour l’ensemble du site et appeler différents contenus de page dans différents <div>
à l’aide de ce code:
<?php
$page_id = 47;
$page_data = get_page( $page_id );
echo $page_data->post_content ;
?>