Wordpress:将if语句添加到单个帖子页面会忽略我的部分,但会显示该部分中的内容

问题描述 投票:1回答:1

对于模糊的标题我很抱歉。

我有一个名为'service'的自定义帖子类型。 single-service.php现在总是在一个看起来与页面其余部分略有不同的漂亮部分中为每个服务添加相同的表单(在Contactform7中制作)。这很好,但我想有可能为不同的服务使用不同的表单,或者没有表单的服务。我在服务帖类型中添加了一个带有ACF(service_booking)的自定义字段,您可以在其中放置所需表单的短代码,或者如果该服务不需要表单,则将其留空,因此我添加了一个if语句去做。

<div class="col-md-6  wow animated fadeInRight">
<?php
the_field('service_description');
?>


<?php $form = the_field('service_booking');
 if (!empty($form)) {
?>

<a href="#booking" class="btn btn-primary bookbutton">Book now</a>

  </div>
 </div> 
</div>
</section>

<section id="booknow">
 <div class="container"><div class="row">
  <div class="col-md-12">
   <div class="book" id="booking">
    <div class="row">
     <div class="col-12 wow animated fadeInUp text-center">
      <h2>Booking</h2>
     <hr></div>
    </div>
    <?php the_field('service_booking');?>
   </div>
  </div>
 </div>
</div>
</section>

<?php }
else{ ?>
    </div>
   </div>   
  </div>
 </section>
<?php };

因此,我想隐藏导致您进入表单的按钮,当没有表单时,只关闭第一部分而不是添加新部分。我遗漏了之前的代码,因为它不相关。

当没有表格时,一切正常,但是当有表格时,表格的按钮没有出现,表格的h2没有出现,表格放在第一部分,它完全忽略了第二节。当我拿走if语句时,那些东西再次可见,所以我的css实际上正在工作。

我究竟做错了什么?

我尝试了不同的形式,但同样的问题不断出现。这是我用来测试它的随机形式:

<label> Je naam (verplicht)
[text* your-name] </label>

<label> Je e-mail (verplicht)
[email* your-email] </label>

<label> Onderwerp
[text your-subject] </label>

<label> Je bericht
[textarea your-message] </label>

[submit "Verzenden"] 

我的表单后面的内容再次都很好,页脚显示良好等。

我希望一切都清楚。谁可以帮我解决这个问题?

php css wordpress advanced-custom-fields
1个回答
0
投票

基于ACF文档,the_field函数显示字段的值而不是返回它,因此您无法将其分配给变量。你应该使用get_field函数。

$form = get_field('service_booking');

此外,您应该仔细检查div元素,以确保您没有额外或错过的关闭标记,否则由于HTML结构问题您的网站无法正确加载。

© www.soinside.com 2019 - 2024. All rights reserved.