En espérant que quelqu'un puisse me diriger dans la direction de l'écriture de manière plus succincte.
Je travaille sur mon site Web et souhaite afficher un total de 5 messages de la catégorie 'interrogations générales'.
Le premier message a un style différent des autres 4. S'il vous plaît voir le code ci-dessous,
Maintenant, 2 problèmes ... comme je l'ai écrit, cela signifie qu'il y a un doublon et, deuxièmement, il existe sûrement un meilleur moyen de combiner cela en un, plutôt que la façon dont je l'ai écrit?
Toute aide serait grandement appréciée.
Je vous remercie
<div class="columns">
<?php
$args = array( 'category_name' => 'General Wonderings', 'posts_per_page' => 1 );
$lastposts = get_posts( $args );
foreach($lastposts as $post) : setup_postdata($post); ?>
<article>
<h3><a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a></h3>
<h4>
<?php the_date(); ?>
</h4>
<p>
<?php the_excerpt(); ?>
</p>
<p><a href="<?php the_permalink(); ?>">Read more</a></p>
</article>
<?php endforeach; ?>
</div>
<div class="columns">
<?php
$args = array( 'category_name' => 'General Wonderings', 'posts_per_page' => 4 );
$lastposts = get_posts( $args );
foreach($lastposts as $post) : setup_postdata($post); ?>
<article>
<h4><a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
<br/>
<span><?php echo substr($post->post_excerpt, 0,30); ?>...<br/>
<?php the_date(); ?>
</span></a></h4>
</article>
<?php endforeach; ?>
</div>
Utilisez offset=1
pour exclure le premier message.
$args = array( 'category_name' => 'General Wonderings', 'posts_per_page' => 4, 'offset' => 1 );
Je m'inquiéterais davantage de la performance que d'un code succinct - abrégé un peu cependant. À l'heure actuelle, vous exécutez deux requêtes. Ce n'est pas nécessaire, et c'est le plus gros problème avec ce code à mon avis.
$args = array( 'category_name' => 'General Wonderings', 'posts_per_page' => 5 );
$lastposts = get_posts( $args );
$first = true; ?>
<div class="columns"><?php
foreach($lastposts as $post) {
setup_postdata($post); ?>
<article><?php
if ($first) { ?>
<h3><a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a></h3>
<h4>
<?php the_date(); ?>
</h4>
<p>
<?php the_excerpt(); ?>
</p>
<p><a href="<?php the_permalink(); ?>">Read more</a></p>
</div><div class="columns"><?php // close the first div and open the second
$first = false;
} else { ?>
<h4><a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
<br/>
<span><?php echo substr($post->post_excerpt, 0,30); ?>...<br/>
<?php the_date(); ?>
</span></a>
</h4><?php
} ?>
</article><?php
} ?>
</div>
J'espère que j'ai préservé le formatage et que je n'ai pas d'erreur de syntaxe :)