Wordpress头中的PHP If、Elseif、Else语句


PHP If, Elseif, Else Statement in Wordpress Header

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

<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经验(我确信代码中只有一个非常基本的错误),只有我通过反复尝试才发现的,但由于这是在一个实时网站上进行的,我不能不断破坏网站。

提前感谢
Willem

您必须打开和关闭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"]' );
}
?>

您在php之间使用html。因此,使用打开和关闭php<?php... ?>,或者如果只有一行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"]');
}
?>

其他答案是正确的,但当您混合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; ?>
<?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标签,你的括号有点偏离。