Wordpress:向单个帖子页面添加 if 语句会忽略我的部分,但会显示该部分中的内容
Posted
技术标签:
【中文标题】Wordpress:向单个帖子页面添加 if 语句会忽略我的部分,但会显示该部分中的内容【英文标题】:Wordpress: adding an if-statement to a single post page ignores my section, but displays what is in the section 【发布时间】:2019-02-12 21:46:06 【问题描述】:对于模糊的标题,我很抱歉。
我有一个名为“服务”的自定义帖子类型。 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"]
我的表单之后的东西都很好了,页脚显示得很好等等。
我希望一切都清楚。谁能帮我解决这个问题?
【问题讨论】:
【参考方案1】:根据 ACF 文档 the_field
函数显示字段的值而不是返回它,因此您不能将其分配给变量。您应该改用get_field
函数。
$form = get_field('service_booking');
您还应该仔细检查div
元素,以确保您没有多余或遗漏的关闭标签,否则您的网站由于 html 结构问题而无法正确加载。
【讨论】:
以上是关于Wordpress:向单个帖子页面添加 if 语句会忽略我的部分,但会显示该部分中的内容的主要内容,如果未能解决你的问题,请参考以下文章