2014-12-17 3 views
0

Я пытаюсь отобразить изображение баннера в зависимости от страницы, пользователь находится на:Условный оператор

<?php if (is_product_category('cocktail-catering-packages')) { ?> 
    <div id="page_caption" class="hasbg parallax " data-image="<?php echo get_bloginfo('template_directory');?>/images/banner08.jpg" data-width="2142" data-height="454"> 
<?php } ?> 
<?php if (is_product_category('sweet-bites')) { ?> 
    <div id="page_caption" class="hasbg parallax " data-image="<?php echo get_bloginfo('template_directory');?>/images/banner10.jpg" data-width="2142" data-height="454"> 
<?php } ?> 
<?php else { ?> 
    <div id="page_caption" class="hasbg parallax " data-image="<?php echo get_bloginfo('template_directory');?>/images/banner04.jpg" data-width="2142" data-height="454"> 
<?php } ?> 

Однако, я получаю следующее сообщение об ошибке:

Parse error: syntax error, unexpected 'else' (T_ELSE) in /home/.../public_html/.../wp-content/themes/.../woocommerce.php on line 513 

Как я незнаком с PHP, может кто-то, пожалуйста, помогите мне в том, как я могу создать этот условный оператор.

+0

Какая линия составляет 513? Это тот, который содержит ''? –

+0

Последние три строки, указанные в коде – user1752759

+0

Возможно, вы захотите рассмотреть возможность использования [альтернативного синтаксиса для контрольных образований] (http://php.net/manual/en/control-structures.alternative-syntax.php) в php, особенно когда он приходит к созданию html. Это намного легче читать и отлаживать. – JTG

ответ

2

Просто писать более разборчиво код поможет вам диагностировать проблему:

function showBanner($filename) 
{ 
    $url = get_bloginfo('template_directory').'/images/'.$filename; 
    echo '<div id="page_caption" class="hasbg parallax" data-image="'.$url. 
     '" data-width="2142" data-height="454">'; 
} 

if (is_product_category('cocktail-catering-packages')) 
{ 
    showBanner('banner08.jpg'); 
} 
else if (is_product_category('sweet-bites')) 
{ 
    showBanner('banner10.jpg'); 
} 
else 
{ 
    showBanner('banner04.jpg'); 
} 
+0

НЕПРАВИЛЬНО! В коде OP нет 'else if'! – Rizier123

+0

А, и вы заметили это очень быстро! :-) Я думаю, что это, вероятно, ошибка в коде вопроса. –

+0

Если вам интересно, я заметил его в 30 секунд, когда я прочитал ваш код! – Rizier123

0

Это должно работать для вас:

(Просто получить } перед else)

<?php if (is_product_category('cocktail-catering-packages')) { ?> 
    <div id="page_caption" class="hasbg parallax " data-image="<?php echo get_bloginfo('template_directory');?>/images/banner08.jpg" data-width="2142" data-height="454"> 

<?php } ?> 
<?php if (is_product_category('sweet-bites')) { ?> 
    <div id="page_caption" class="hasbg parallax " data-image="<?php echo get_bloginfo('template_directory');?>/images/banner10.jpg" data-width="2142" data-height="454"> 

<?php } else { ?> 
    //^Here i have the '}' before the else statement and NOT in separate php tags 
    <div id="page_caption" class="hasbg parallax " data-image="<?php echo get_bloginfo('template_directory');?>/images/banner04.jpg" data-width="2142" data-height="454"> 

<?php } ?> 
Смежные вопросы