我正在使用一个函数从“新闻”类别中获取最近的3篇帖子
add_shortcode( \'show_news\', \'news_query\' );
function news_query() {
$args = array(
\'posts_per_page\' => 3,
\'category_name\' => \'news\',
);
$news_query = new WP_Query( $args );
if ( $news_query->have_posts() ) :
$html_out = \'<article>\';
while ( $news_query->have_posts() ) :
$news_query->the_post();
// Do stuff with each post here
$html_out .= \'<div class="news-item"><div class="meta-date">\' . Date(\'m/y\') . \'</div><div class="meta-info"><div class="meta-title"><h4><a href="\' . get_permalink() . \'">\' . get_the_title() . \'</a></h4></div></div></div>\';
endwhile;
$html_out .= \'</article>\';
else : // No results
echo "Nothing to show";
endif;
wp_reset_query();
return $html_out;
}
但我需要针对最新的帖子,并为其提供一个类,以便我可以对其进行不同的样式设置并添加
the_excerpt();
对它也一样。
我需要对计数做些什么来瞄准它吗?这就是我的设想:
新闻项目=标题+摘录(最近的项目,将有class=“foo”)新闻项目=标题新闻项目=标题
SO网友:JMau
此处不需要wp\\u reset\\u query(),请使用wp\\u reset\\u postdata(),因为这是一个辅助查询,不需要重置为原始主查询。
切勿在短代码中使用echo,请替换行:
echo "Nothing to show";
使用:
$html_out = "Nothing to show";
要获得您想要的,您可以使用:
global $wp_query;
$wp_query->current_post
它将为您提供循环中立柱的当前位置。小心,第一个post位置是0而不是1。因此,您可以执行以下操作:
if ( 0 === $wp_query->current_post ) {
/*some code*/
} else {
/* some code */
}