我的代码有错字! 但是我不允许删除它,所以在这里您可以了解一些可以做得比我更好的方法;)
问题如下,我的查询正在跳过循环的一部分。 我有一个查询,该查询使用帖子的标题和缩略图作为锚点。 它为第一篇文章运行查询很好,但第二篇文章没有加载到缩略图中,但它确实显示了标题,并且仅在缩略图之后提到了标题,找不到与它相似的小图像要么。我的第一个问题是在这里发布的,因此错误地将项目放错了地方。
<?php
// WP_Query arguments
$args = array (
'post_type' => array( 'klantcase' ),
'post_status' => array( 'publish' ),
'nopaging' => true,
'order' => 'ASC',
'orderby' => 'menu_order',
);
// The Query
$klantcases = new WP_Query( $args );
// The Loop
if ( $klantcases->have_posts() ) {
while ( $klantcases->have_posts() ) {
$klantcases->the_post();
echo "<a href=".get_the_permalink().">";
echo get_the_post_thumbnail( null, $size = 'post-thumbnail');?><br><?php
echo the_title();?><br><?php
echo "</a>";
}
} else {
echo "no posts found";
}
// Restore original Post Data
wp_reset_postdata();
现在可能有很多方法可以改善此循环,但是正如所提到的,这对所有这些都是非常新的。就是说,我很想听听你们如何解决这个问题。
答案 0 :(得分:0)
您不需要echo the_title()
-它已经回显了,所以我猜想这就是问题的一部分。您还可以使循环更简单。
您不需要'post_status'
参数,因为默认为publish
。
在循环中,让我们使用WP的内置回显函数:the_permalink()
,the_title()
和the_post_thumbnail()
。您不必将任何参数传递给the_post_thumbnail()
,因为您只是在代码中调用默认值。
<?php
// WP_Query arguments
$args = [
'post_type' => ['klantcase'],
'nopaging' => TRUE,
'order' => 'ASC',
'orderby' => 'menu_order',
];
// The Query
$klantcases = new WP_Query( $args );
// The Loop
if ( $klantcases->have_posts() ) {
while ( $klantcases->have_posts() ) {
$klantcases->the_post(); ?>
<a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail(); ?><br>
<?php the_title(); ?>
</a>
<?php
}
} else {
echo 'no posts found';
}
// Restore original Post Data
wp_reset_postdata();
答案 1 :(得分:0)
在while循环的顶部定义空变量。 并在循环中将html与该空变量连接在一起。 例如。
$output = '';
if ( $klantcases->have_posts() ) {
while ( $klantcases->have_posts() ) {
$klantcases->the_post();
$output .= '<a href="'.the_permalink().'">';
$output .= the_post_thumbnail() .'<br>';
$output .= the_title();
$output .= '</a>';
}
} else {
echo "no posts found";
}
echo $output;