Dans category-about.php
j'ai
<?php
/**
* The template for displaying the posts in the About category
*
*/
?>
<!-- category-about.php -->
<?php get_header(); ?>
<?php
$args = array(
'post_type' => 'post',
'category_name' => 'about',
); ?>
<?php
// How to put this part in get_template_part ?
$cat_name = $args['category_name'];
$query = new WP_Query( $args );
if($query->have_posts()) : ?>
<section id="<?php echo $cat_name ?>-section">
<h1 class="<?php echo $cat_name ?>-section-title">
<strong><?php echo ucfirst($cat_name) ?> Section</strong>
</h1><?php
while($query->have_posts()) : $query->the_post(); ?>
<strong><?php the_title(); ?></strong>
<div <?php post_class() ?> >
<?php the_content(); ?>
</div> <?php
endwhile; ?>
</section> <?php
endif;
wp_reset_query();
// end get_template_part ?>
<?php get_footer(); ?>
Comment puis-je avoir les variables de category-about.php
dans le fichier modèle posts-loop.php
?
En regardant ce commentaire et cette réponse J'ai du mal à tout mettre en place.
J'aimerais mieux comprendre ceci au lieu d'utiliser l'une des fonctions d'aide fournies dans les réponses. Je comprends que la bonne façon serait d'utiliser set_query_var
et get_query_var
mais j'ai besoin d'un peu d'aide pour cela.
Au lieu d'écrire le code de boucle de base pour chaque catégorie, j'aime bien définir le $args
dans le modèle de catégorie, puis l'utiliser dans le fichier de modèle. Toute aide est très appréciée.
Dans category-about.php
j'ai
<?php
/**
* The template for displaying the posts in the About category
*
*/
?>
<!-- category-about.php -->
<?php get_header(); ?>
<?php
$args = array(
'post_type' => 'post',
'category_name' => 'about',
); ?>
<?php
// important bit
set_query_var( 'query_category', $args );
get_template_part('template-parts/posts', 'loop');
?>
<?php get_footer(); ?>
et dans le fichier modèle posts-loops.php
j'ai maintenant
<!-- posts-loop.php -->
<?php
// important bit
$args = get_query_var('query_category');
$cat_name = $args['category_name'];
$query = new WP_Query( $args );
if($query->have_posts()) : ?>
<section id="<?php echo $cat_name ?>-section">
<h1 class="<?php echo $cat_name ?>-section-title">
<strong><?php echo ucfirst($cat_name) ?> Section</strong>
</h1><?php
while($query->have_posts()) : $query->the_post(); ?>
<strong><?php the_title(); ?></strong>
<div <?php post_class() ?> >
<?php the_content(); ?>
</div> <?php
endwhile; ?>
</section> <?php
endif;
wp_reset_query();
et il fonctionne.
Référence:
http://keithdevon.com/passing-variables-to-get_template_part-in-wordpress/#comment-110459https://wordpress.stackexchange.com/a/176807/77054
Première façon :
Modèle dans lequel la partie modèle est incluse:
$value_to_sent = true;
set_query_var( 'my_var', $value_to_sent );
Partie de modèle incluse:
$get_my_var = get_query_var('my_var');
if ($get_my_var == true) {
...
}
Deuxième voie:
Modèle dans lequel la partie modèle est incluse:
global $my_var;
$my_var= true;
Partie de modèle incluse:
global $my_var;
if ($my_var == true) {
...
}
Je préférerais utiliser le premier moyen.