我使用以下代码从页面中的类别中获取帖子。此类别对某些字段使用ACF。但是,当我尝试输出所有内容时,它会显示除\\u内容之外的所有内容。为了更好地理解,以下是我的代码:
<div class="content ">
<?php if (have_posts()) : ?>
<h1 class="pricing">Prices</h1>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<!-- START LIST -->
<?php
global $post;
$my_query = new WP_Query(\'showposts=9999&category_name=my-category\');
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;
$category = get_the_category();
$short = get_field(\'short_excerpt\'); // and more custom fields
?>
<!-- START PRICE CHART -->
<div class="pricechart">
<h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
<p class="subtitle"><?php echo $short;?></p>
<div class="leftexcerpt">
<?php
if ($cap) {echo \'<div class="price_row">
<div class="price_row_left">Max Guests</div>
<div class="price_row_right">\'.$cap.\'</div>
</div>\';
} elseif ($capt) {echo \'<div class="price_row">
<div class="price_row_left">Max Guests</div>
<div class="price_row_right">\'.$capt.\'</div>
</div>\';
} else {} ?>
<!-- and some additional ACF content that displays properly -->
</div>
<!-- THE THUMB COLUMN -->
<div class="thzone">
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(\'archi\') ?></a>
</div>
</div><!-- /pricechart -->
<?php endwhile;?>
<?php endif;?>
</div><!-- /content -->
有了这段代码,我可以显示所有内容,从标题到所有帖子及其ACF字段、永久链接、缩略图,完全没有问题。但是,它不显示主要内容
我以为这一定是件很愚蠢的事情,但到目前为止,我花了4个小时,无法理解它,所以来到这里作为最后的资源。我还认为ACF可能是罪魁祸首,但这似乎不是原因,因为一切(包括ACF)都正常显示,但我提到这一点只是为了以防万一。您可能会看到,我并不精通PHP,只是边学边用。
最合适的回答,由SO网友:Tom J Nowell 整理而成
您从未启动主循环:
<?php if (have_posts()) : ?>
<h1 class="pricing">Prices</h1>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
您检查主查询中是否有帖子,但从不启动循环,直接跳到显示标题和内容,您需要将所有内容移动到主帖子循环中。没有post循环,就无法处理post,即使它是一个包含单个post的循环。