【问题标题】:PHP If, Elseif, Else Statement in Wordpress HeaderWordpress Header 中的 PHP If、Elseif、Else 语句
【发布时间】:2013-12-18 17:50:05
【问题描述】:

我的页面顶部有一个 H2 和一个表单,它出现在任何页面上,并且在主题模板中,在 header.php 中,但我需要在 2 个特定页面上更改内容。当前代码是这样的:

<h2 id="formhead">Buy, Hire or Enquire</h2>
<?php echo do_shortcode( '[gravityform id="1" name="Contact Form" title="false" description="false"]' ); ?>

我尝试将其更改为 if、elseif、else 语句:

<?php
if (is_page('54')) {
<h2 id="formhead">Hire or Enquire</h2>
echo do_shortcode( '[gravityform id="3" name="Contact Form" title="false" description="false"]' );
} elseif (is_page('52')) {
<h2 id="formhead">Buy or Enquire</h2>
echo do_shortcode( '[gravityform id="2" name="Contact Form" title="false" description="false"]' );
} else {
<h2 id="formhead">Buy, Hire or Enquire</h2>
echo do_shortcode( '[gravityform id="1" name="Contact Form" title="false" description="false"]' );
}
?>

然而,这完全破坏了网站并且没有加载任何内容。我没有真正的 php 经验(我确信代码中只有一个非常基本的错误),只有我通过反复试验得出的结论,但由于这是在一个实时站点上进行的,所以我买不起不断破坏网站。

提前致谢
威廉

【问题讨论】:

  • 出现语法错误.. php标签未关闭,开启错误报告

标签: php wordpress


【解决方案1】:

你必须打开和关闭 php 标签:

<?php
if (is_page('54')) { ?>
<h2 id="formhead">Hire or Enquire</h2>
<?php echo do_shortcode( '[gravityform id="3" name="Contact Form" title="false" description="false"]' );
} elseif (is_page('52')) { ?>
<h2 id="formhead">Buy or Enquire</h2>
<?php echo do_shortcode( '[gravityform id="2" name="Contact Form" title="false" description="false"]' );
} else { ?>
<h2 id="formhead">Buy, Hire or Enquire</h2> <?php
echo do_shortcode( '[gravityform id="1" name="Contact Form" title="false" description="false"]' );
}
?>

【讨论】:

  • 我们都必须从某个地方开始,不是吗?很高兴我能帮上忙!
【解决方案2】:

您在 php 之间使用 html 。所以要么使用打开和关闭 php &lt;?php... ?&gt; 或者如果单个 html 行那么你可以使用 echo 如下

<?php
if (is_page('54')) {
    echo '<h2 id="formhead">Hire or Enquire</h2>';
    echo do_shortcode('[gravityform id="3" name="Contact Form" title="false" description="false"]');
} elseif (is_page('52')) {
    echo '<h2 id="formhead">Buy or Enquire</h2>';
    echo do_shortcode('[gravityform id="2" name="Contact Form" title="false" description="false"]');
} else {
    echo '<h2 id="formhead">Buy, Hire or Enquire</h2>';
    echo do_shortcode('[gravityform id="1" name="Contact Form" title="false" description="false"]');
}
?>

【讨论】:

    【解决方案3】:

    其他答案是正确的,但是当你混合 PHP 和 HTML 时,你可以使用另一种语法(我更喜欢它,因为我觉得它更易读):

    <?php if (is_page('54')): ?>
        <h2 id="formhead">Hire or Enquire</h2>
        <?php echo do_shortcode('[gravityform id="3" name="Contact Form" title="false" description="false"]'); ?>
    <?php elseif (is_page('52')): ?>
        <h2 id="formhead">Buy or Enquire</h2>
        <?php echo do_shortcode('[gravityform id="2" name="Contact Form" title="false" description="false"]'); ?>
    <?php else: ?>
        <h2 id="formhead">Buy, Hire or Enquire</h2>
        <?php echo do_shortcode('[gravityform id="1" name="Contact Form" title="false" description="false"]'); ?>
    <?php endif; ?>
    

    【讨论】:

      【解决方案4】:
      <?php
      if (is_page('54')) {
      ?>
      <h2 id="formhead">Hire or Enquire</h2>
      <?php
      echo do_shortcode( '[gravityform id="3" name="Contact Form" title="false" description="false"]' );
      } elseif (is_page('52')) {
      ?>
      <h2 id="formhead">Buy or Enquire</h2>
      <?php
      echo do_shortcode( '[gravityform id="2" name="Contact Form" title="false" description="false"]' );
      } else {
      ?>
      <h2 id="formhead">Buy, Hire or Enquire</h2>
      <?php
      echo do_shortcode( '[gravityform id="1" name="Contact Form" title="false" description="false"]' );
      }
      ?>
      

      这可能有效(未经测试)

      您没有打开和关闭您的 PHP 标记,而且您的括号有点偏离。

      【讨论】: