2013-12-18 2 views
3

У меня есть H2 и форма в верхней части моей страницы, она присутствует на любой странице и находится в шаблоне темы в header.php, но мне нужен контент для изменения на 2 конкретных страницах. Текущий код заключается в следующем:PHP If, Elseif, Else Statement в Wordpress Header

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

Я попытался изменить его Условное, ElseIf, другое заявление:

<?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

+0

есть ошибка синтаксиса .. PHP теги не закрыты, сообщают об ошибках об ошибках –

ответ

2

Вы должны открывать и закрывать теги 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"]'); 
} 
?> 
+0

Спасибо, что работает, я знал, что я просто ноб. – Willem

+0

Мы все должны начать где-то, не так ли? Рад, что смог помочь! – veelen

2

Вы используете HTML между PHP. Поэтому либо использовать открытие и закрытие 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"]'); 
} 
?> 
1
<?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 теги и ваши скобки были немного выключены.

2

Другие ответы в порядке, но вот другой синтаксис, который можно использовать, когда вы смешиваете 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; ?>