web-dev-qa-db-fra.com

y a-t-il une meilleure façon de combiner cela?

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>
1
V Neal

Utilisez offset=1 pour exclure le premier message.

$args = array( 'category_name' => 'General Wonderings', 'posts_per_page' => 4, 'offset' => 1 );
2
Prasanna SP

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 :)

1
s_ha_dum