如果我理解正确,您希望使用单独的查询获取第一篇文章,也许是为了将其与标记中的其他文章区分开来。要做到这一点,我会尝试以下方法:
<?php global $paged;
<?php if (is_home() && !$paged) : ?>
<?php
$posts_per_page = get_option(\'posts_per_page\');
$num_featured_posts = 1;
query_posts(array(\'posts_per_page\' => $num_featured_posts)); ?>
<div id="featured">
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( \'content\', get_post_format() ); ?>
<?php endwhile; ?>
<?php elseif ( current_user_can( \'edit_posts\' ) ) : ?>
<?php get_template_part( \'no-results\', \'index\' ); ?>
<?php endif; ?>
</div>
<?php
wp_reset_query();
query_posts(array(\'posts_per_page\' => $posts_per_page - $num_featured_posts, \'offset\' => $num_featured_posts));
?>
<?php endif; ?>
<div id="posts">
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( \'content\', get_post_format() ); ?>
<?php endwhile; ?>
<?php elseif ( current_user_can( \'edit_posts\' ) ) : ?>
<?php get_template_part( \'no-results\', \'index\' ); ?>
<?php endif; ?>
</div>
Regarding your update
我想你的查询有错误。首先,您正在同时使用这两个
cat
和
category_name
它们使用不同的参数(id和slug)做同样的事情。不过,这可能不是什么大问题,因为其中一个可能会优先考虑。
我认为问题是你把多个弹头作为category_name
参数,而它只需要一个。相反,使用category__in
并按如下方式在数组中传递类别ID:
$args = array(
\'category__in\' => array(1, 2, 3)
);
此外,当您在WP\\u查询方面遇到问题时,最好添加
wp_reset_query()
在查询之前和之后调用,以确保它不会干扰周围的查询,请添加一些最常见的查询变量,如
post_type
,
posts_per_page
,
paged
等,以确保它们不会在其他地方被覆盖。最后,有时只需使用
print_r($featured_posts);
将为您提供有价值的调试信息。