J'essaie de charger les 3 derniers messages sur ma page d'accueil. Je suis un novice absolu mais je semble faire des progrès.
Ceci est mon code (ci-dessous). À la minute où chaque article a pour titre "Accueil", je comprends que c'est parce que la page d'accueil est la requête principale?
<?php
$latest_blog_posts = new WP_Query( array( 'posts_per_page' => 3 ) );
if ( $latest_blog_posts->have_posts() ) : while ( $latest_blog_posts->have_posts() ) : $latest_blog_posts->the_post();
get_template_part('loop');
endwhile; endif;
?>
Alors, comment pourrais-je modifier ce code pour qu'il affiche les 3 derniers messages du blog en utilisant loop.php?
J'ai aussi un type de message personnalisé qui utilise une page/boucle différente. Mais je suppose qu'une fois que cela fonctionne, il suffira simplement d’échanger la "boucle" contre "la boucle-2" pour que cela fonctionne avec le même code?
Esperons que quelqu'un puisse aider avec ça. C'est un pas en avant, deux pas en arrière à la minute pour moi!
MODIFIER
Contenu de loop.php
comme demandé dans la réponse :)
<?php if (have_posts()): while (have_posts()) : the_post(); ?>
<!-- article -->
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<!-- post thumbnail -->
<?php if ( has_post_thumbnail()) : // Check if thumbnail exists ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="h-entry__image-link">
<?php the_post_thumbnail(array(120,120)); // Declare pixel size you need inside the array ?>
</a>
<?php endif; ?>
<!-- /post thumbnail -->
<!-- post title -->
<h2 class="p-name">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<!-- /post title -->
<!-- post details -->
<time datetime="<?php the_time('Y-m-j'); ?>" class="dt-published"><?php the_time('jS F Y'); ?></time>
<!-- /post details -->
<?php html5wp_summary('html5wp_index'); // Build your custom callback length in functions.php ?>
<p><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="arrow-link">Read the full article</a></p>
<?php edit_post_link(); ?>
</article>
<!-- /article -->
<?php endwhile; ?>
<?php else: ?>
<!-- article -->
<article>
<h2><?php _e( 'Sorry, nothing to display.', 'html5blank' ); ?></h2>
</article>
<!-- /article -->
<?php endif; ?>
Voici comment vous le feriez. Votre boucle est basée sur le fait d'être dans une archive ou une page d'index. (ou à la maison)
$args = array(
'posts_per_page' => 3,
'post_type' => 'post', //choose post type here
'order' => 'DESC',
);
// query
$the_query = new WP_Query( $args );
if( $the_query->have_posts() ):
while( $the_query->have_posts() ) : $the_query->the_post();
get_template_part('loop');
endwhile;
else :
endif;
code révisé exécutant la requête complète sans le contenu-part.php
// WP_Query arguments
$args = array(
'posts_per_page' => 3,
'post_type' => 'post', //choose post type here
'order' => 'DESC',
);
// The Query
$query = new WP_Query( $args );
// The Loop
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
?>
<!-- article -->
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<!-- post thumbnail -->
<?php if ( has_post_thumbnail()) : // Check if thumbnail exists ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="h-entry__image-link">
<?php the_post_thumbnail(array(120,120)); // Declare pixel size you need inside the array ?>
</a>
<?php endif; ?>
<!-- /post thumbnail -->
<!-- post title -->
<h2 class="p-name">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</h2>
<!-- /post title -->
<!-- post details -->
<time datetime="<?php the_time('Y-m-j'); ?>" class="dt-published"><?php the_time('jS F Y'); ?></time>
<!-- /post details -->
<?php html5wp_summary('html5wp_index'); // Build your custom callback length in functions.php ?>
<p><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="arrow-link">Read the full article</a></p>
<?php edit_post_link(); ?>
</article>
<!-- /article -->
<?php
}
} else {
// no posts found
}
// Restore original Post Data
wp_reset_postdata();
je ne peux pas le tester complètement à cause des fonctions appelées par votre thème, mais essayez-le.
Si cela fonctionne, vous pouvez extraire le contenu de l'article. Remplacez tout le contenu de votre fichier loop.php actuel par le contenu ci-dessus mais uniquement par
<!-- article -->
à
<!-- /article -->
Comme cela serait dans votre nouveau fichier loop.php, vous le retirerez de la page principale.
Essaye ça
<?php
$latest_blog_posts = new WP_Query( array( 'posts_per_page' => 3, 'offset' => 3 ) );
if ( $latest_blog_posts->have_posts() ) : while ( $latest_blog_posts->have_posts() ) : $latest_blog_posts->the_post();
get_template_part('loop');
endwhile; endif;
?>
Pour plus d'informations sur WP Query avec des paramètres personnalisés, vérifiez ceci link