我建议切换到标准post循环:
$args = [
\'posts_per_page\' => 12,
\'category_name\' => \'featured\',
\'orderby\' => \'post_date\',
\'order\' => \'ASC\',
];
$query = new \\WP_Query($args);
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
.....
}
\\wp_reset_postdata();
}
请注意,我:
切换到的现代PHP数组语法[]
而不是array()
删除了切换到标准的抑制滤波器参数\\WP_Query
循环检查是否确实找到了任何帖子,提供了一种添加else
带有“找不到帖子”消息的语句切换为标准PHP语法{}
括号而非备用语法修复了调用的缩进the_post()
设置当前职位,相当于setup_postdata( $post );
但是清洁工打电话来了wp_reset_postdata()
要在循环后进行清理,以便下一段代码获得正确的帖子,而不是循环迭代的最后一篇帖子,请删除post_type
参数,因为默认的帖子类型已经是post
你在评论中提到了一个与命名空间相关的错误,所以我添加了\\
为了确保它从全局名称空间中提取WP函数,我有两个不相关的注释:
返回值和the_
功能我发现了这些:
echo the_post_thumbnail(\'large\');
和
echo the_title();
这些函数不向返回值
echo
, 这不是他们的工作方式。它们相当于:
echo \'\';
the_post_thumbnail(\'large\');
echo \'\';
the_title();
所以不要使用
echo
, 以开头的任何其他WP函数也是如此
the_
例如
the_content
, 等等。如果确实需要返回值以便将其放入变量中,请使用等效值
get_
样式功能。
旋转木马标记
如果我理解正确,如果找到5个帖子,将有5个旋转木马,每个都有一个帖子。我会将旋转木马容器标记移动到循环之前和之后,以便在其中只输出当前幻灯片/项目。
但总体而言,旋转木马的用户体验太差,可访问性差,复杂性高,在性能和CSS/JS权重方面开销很大。您最好使用英雄模式或某种特色网格,旋转木马的可发现性极低,因此任何旋转木马都将与显示第一个项目而不显示其余项目一样有效。背景\'posts_per_page\' => 1
将同样有效。