我正在使用query_post
来显示最近发布的帖子。
我想给第一篇文章提供特殊的样式和html标记。
这是我目前的代码:
$cat_args=array(
'orderby' => 'name',
'order' => 'ASC'
);
$categories=get_categories($cat_args);
foreach($categories as $category) {
$args=array(
'showposts' => -1,
'category__in' => array($category->term_id),
'caller_get_posts'=>1
);
$posts=query_posts($args);
if ($posts) {
echo '<h3><a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </h3> ';
while ( have_posts() ) : the_post();
if( $wp_query->current_post == 0 ) :?>
<?php if ( has_post_thumbnail()) : ?>
<a href="<?php the_permalink(); ?>" class="thumb" title="<?php the_title_attribute(); ?>" ><?php the_post_thumbnail('post-thumb'); ?></a>
<?php endif; ?>
<h5><a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a></h5>
<?php else : ?>
<?php if ( has_post_thumbnail()) : ?>
<a href="<?php the_permalink(); ?>" class="thumb" title="<?php the_title_attribute(); ?>" ><?php the_post_thumbnail('post-thumb'); ?></a>
<?php endif; ?>
<h5><a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a></h5>
<?php endif;
endwhile;
} // if ($posts
} // foreach($categories
答案 0 :(得分:2)
您需要做的只是将您的代码段包装到if
语句中,并在the_post
循环之前调用while
函数。通过调用the_post
函数,您将从队列中获取第一条记录。它应该是这样的:
if ( have_posts() ) :
the_post();
if ( has_post_thumbnail()) :
?><a href="<?php the_permalink(); ?>" class="thumb" title="<?php the_title_attribute(); ?>" >
<?php the_post_thumbnail('post-thumb'); ?>
</a><?php
endif;
?><h5>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</h5><?php
while ( have_posts() ) :
the_post();
if ( has_post_thumbnail()) : ?>
<a href="<?php the_permalink(); ?>" class="thumb" title="<?php the_title_attribute(); ?>" ><?php the_post_thumbnail('post-thumb'); ?></a>
<?php endif; ?>
<h5><a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a></h5>
endwhile;
endif;
答案 1 :(得分:0)
根据您想要设置样式[整个帖子,标题,等等],您将要识别第一篇文章,然后有条件地输出您想要该帖子的类或任何HTML。 &#34;循环&#34;是while和endwhile之间代码的一部分。所以在循环之前,放:
$is_first_post = TRUE;
然后在while循环中,在你尝试添加样式之前,将其放入:
if ($is_first_post == TRUE){
echo (" .... THIS WOULD BE ADDED TO THE FIRST POST ONLY ....");
$is_first_post = FALSE; //this flags the next post as not being first
}