web-dev-qa-db-ja.com

これを組み合わせるためのより良い方法はありますか?

誰かがもっと簡潔な方法でこれを書く方向に私を指すことができることを願っています。

私は私のウェブサイトに取り組んでおり、カテゴリ「general wonderings」からの合計5の投稿を表示したいです。

最初の投稿は他の投稿とは異なるスタイルを持っています4。以下のコードを見てください、

さて、2つの問題...私が書いたやり方では、重複した投稿があるということです。次に、これを1つにまとめるより良い方法があるでしょう。

任意の助けは大歓迎です。

ありがとうございました

    <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

最初の投稿を除外するにはoffset=1を使用してください。

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

私は簡潔なコードよりもパフォーマンスについてもっと心配するでしょう - しかしそれを少し短くしました。今、2つのクエリを実行しています。それは必要ではありません、そしてそれは私の意見ではこのコードの最大の問題です。

$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>

うまくいけば、私はフォーマットを保存して、構文エラーがありません:)

1
s_ha_dum