您的查询参数包含一个嵌套数组,因此它不会以这种方式工作-如下项posts_per_page
属于主阵列(例如。new WP_Query( array( \'posts_per_page\' => 5 ) )
). 所以应该是这样的:
请注意\'category\' => \'art\'
行不通。相反,请使用category_name
按类别查询帖子的参数。
$query1 = new WP_Query( array(
\'posts_per_page\' => 5,
\'post_type\' => \'project\',
) );
$query2 = new WP_Query( array(
\'posts_per_page\' => 1,
\'category_name\' => \'art\',
) );
$posts = array_merge( $query1->posts, $query2->posts );
其次,你不需要第三个
WP_Query
实例(即。
$result
). 相反,您可以使用
foreach
回路代替
while
, 然后使用
setup_postdata()
设置全局post变量(
$post
) 因此,其功能如下
the_permalink()
和
the_title()
将按预期工作。
请注意the_post_thumbnail()
不返回帖子缩略图的URL;相反,它会显示帖子缩略图,即。echo
$result
八 标记,因此不能在图像的src
属性
foreach ( $posts as $post ) : setup_postdata( $post ); ?>
<div class="project-item">
<a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail(); ?>
<h5 class="title"><?php the_title(); ?></h5>
</a>
</div>
<?php endforeach;
现在应该可以了。
但我认为没有必要合并这些帖子,我可能会使用template part 用于查询和显示标准帖子,然后从front-page.php
模板:
front-page.php
<?php
// Query 5 "project" posts.
$projects = new WP_Query( [
\'posts_per_page\' => 5,
\'post_type\' => \'project\',
] );
$i = 0; // post counter
while ( $projects->have_posts() ) : $projects->the_post();
// Displays the default post before the first "project".
if ( 0 === $i ) {
get_template_part( \'my-template-part\' ); // no .php
}
?>
your code
<?php
$i++;
endwhile;
wp_reset_postdata();
?>
my-template-part.php
:<?php
// Query 1 standard post.
$art_posts = new WP_Query( [
\'posts_per_page\' => 1,
\'category_name\' => \'art\',
] );
while ( $art_posts->have_posts() ) : $art_posts->the_post();
?>
your code
<?php
endwhile;
wp_reset_postdata();
?>