0

我的代码有错字!但我不允许删除它,所以在这里你有一些关于你可以做得比我更好的方法的信息;)

问题如下,我的查询跳过了我的循环的一部分。我有一个查询,用帖子的标题和缩略图制作一个锚点。它对第一篇文章的查询运行良好,除了第二篇文章它没有加载到缩略图中,但它确实显示了标题,并且标题仅在缩略图后提及,没有类似它的小图像找不到任何一个。我在这里发布的第一个问题是对在错误部分中放错物品表示歉意。

<?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();

现在可能有很多方法可以改进这个循环,但正如我所提到的,我对这一切都很陌生。那就是说我很想听听你们将如何解决这个问题。

4

2 回答 2

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;
于 2019-09-11T12:31:15.063 回答
0

你不需要echo the_title()- 它已经回响了,所以我猜这就是问题的一部分。你也可以让你的循环更简单一点。

您不需要'post_status'参数,publish默认情况下。

在您的循环中,让我们使用 WP 内置的 echo 函数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();
于 2019-09-11T12:30:09.100 回答