有没有更好的方式来结合这一点?

时间:2013-01-18 作者:V Neal

希望有人能为我指明一个更简洁的写作方向。

我正在我的网站上工作,希望显示“一般惊奇”类别中总共5篇帖子。

第一篇文章的风格与其他4篇不同。请参见下面的代码,

现在,有两个问题。。。我写这篇文章的方式意味着有一篇重复的文章,其次,肯定有更好的方式将这篇文章合并成一篇,而不是我写这篇文章的方式?

任何帮助都将不胜感激。

非常感谢。

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

2 个回复
SO网友:Prasanna SP

使用offset=1 排除第一篇文章。

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

SO网友:s_ha_dum

我更担心的是性能,而不是简洁的代码——不过要把它缩短一点。现在您正在运行两个查询。这是没有必要的,在我看来,这是该代码的最大问题。

$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>
希望我保留了格式,没有任何语法错误:)

结束

相关推荐

NEXT_POSTS_LINK()仅适用于原始的$wp_Query

我有一个自定义模板,我想显示分页的博客文章。这是我的文件的开头:$wp_query = new WP_Query($args); if($wp_query->have_posts()){ while($wp_query->have_posts()){ $wp_query->the_post(); //something... <?php next_posts_link(\'Older Entri