我是PHP新手,我尝试编写一个类别中最近发布的帖子的编码,但似乎我进入了一个回声循环。
我如何优化以下代码,使其看起来不像它那样?
<?php $cat_id = 3;
$latest_cat_post = new WP_Query( array('posts_per_page' => 1, 'category__in' => array($cat_id)));
if( $latest_cat_post->have_posts() ) : while( $latest_cat_post->have_posts() ) : $latest_cat_post->the_post();
echo '<a href="';
the_permalink();
echo '">';
if ( has_post_thumbnail() ) {
the_post_thumbnail();
}
echo '</a>';
echo '<div class="widget-box-text">'
echo '<a href="';
the_permalink();
echo '">';
the_title();
echo '</a>';
the_excerpt();
echo '</div><!-- widget-box-text -->'
endwhile; endif; ?>
非常感谢,我期待学习编程,并希望使我的代码至少符合这样的规范。
答案 0 :(得分:2)
您只需要正确格式化和缩进该代码并使用PHP模板而不是echo
:
<?php
$cat_id = 3;
$query = new WP_Query(array(
'posts_per_page' => 1,
'category__in' => $cat_id
));
?>
<?php while ($query->have_posts()): $query->the_post(); ?>
<a href="<?php the_permalink(); ?>"></a>
<?php if (has_post_thumbnail()) the_post_thumbnail(); ?>
<div class="widget-box-text">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
</div>
<?php endwhile; ?>
答案 1 :(得分:1)
如果你不想在PHP和HTML之间交替,你可以坚持使用PHP。这只是编写相同内容的另一种方式。
<?php
$cat_id = 3;
$query = new WP_Query
(
array
(
'posts_per_page' => 1,
'category__in' => $cat_id
)
);
while($query->have_posts())
{
$query->the_post();
echo '<a href="'.the_permalink().'"></a>';
if (has_post_thumbnail()){
the_post_thumbnail();
}
echo '<div class="widget-box-text">'
.'<a href="'.the_permalink().'">'.the_title().'</a>';
the_excerpt();
echo '</div>';
}
?>