希望有人能为我指明一个更简洁的写作方向。
我正在我的网站上工作,希望显示“一般惊奇”类别中总共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>
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>
希望我保留了格式,没有任何语法错误:)