2012-06-17 6 views
0

У меня возникли проблемы с созданием шаблона, который условно отображает некоторый контент. Это для блога, который содержит статьи и учебные пособия. Учебники начнутся с окна, содержащего дополнительную информацию об этом учебнике. Дополнительная информация вводится в пользовательские поля.Условные теги шаблона для темы WordPress

В моем файле «single.php», у меня есть следующий код:

<section class="entry-content group"> 
    <?php if (in_category('tutorials')) { echo ' 
     <div class="tutorial-info-box group"> 
      <h5>About This Tutorial</h5> 
      <ul class="tutorial-stats"> 
       <li> <span> Difficulty: </span> </li> 
       <li> <span> Prerequisites: </span> </li> 
       <li> <span> Time required: </span> </li> 
       <li> <span> Will improve your knowledge of: </span> </li> 
      </ul> 
     </div> 
    '; } ?> 
    <?php the_content(); ?> 
</section> 

выше прекрасно работает для рендеринга в этом поле только на должности в категории "Уроки. Я бег в неприятность, когда я пытаюсь включить данные из пользовательских полей, как так:

<section class="entry-content group"> 
    <?php if (in_category('tutorials')) { echo ' 
     <div class="tutorial-info-box group"> 
      <h5>About This Tutorial</h5> 
      <ul class="tutorial-stats"> 
       <li> 
        <span> Difficulty: </span> 
        <?php get_post_meta($post->ID, 'difficulty', true); ?> 
       </li> 
       <li> 
        <span> Prerequisites: </span> 
        <?php get_post_meta($post->ID, 'prerequisites', true); ?> 
       </li> 
       <li> 
        <span> Time required: </span> 
        <?php get_post_meta($post->ID, 'time', true); ?> 
       </li> 
       <li> 
        <span> Will improve your knowledge of: </span> 
        <?php get_post_meta($post->ID, 'improve', true); ?> 
       </li> 
      </ul> 
     </div> 
    '; } ?> 
    <?php the_content(); ?> 
</section> 

Я в конечном итоге только с пустым белым экраном. Я предполагаю, что это какая-то синтаксическая ошибка, но я не могу понять, что это такое. Может ли кто-нибудь помочь? Заранее спасибо!!!

ответ

0

Ваш в том числе открытый <?php внутри строки. Исправьте это:

<section class="entry-content group"> 
    <?php if (in_category('tutorials')): ?> 
     <div class="tutorial-info-box group"> 
      <h5>About This Tutorial</h5> 
      <ul class="tutorial-stats"> 
       <li> 
        <span> Difficulty: </span> 
        <?php echo get_post_meta($post->ID, 'difficulty', true); ?> 
       </li> 
       <li> 
        <span> Prerequisites: </span> 
        <?php echo get_post_meta($post->ID, 'prerequisites', true); ?> 
       </li> 
       <li> 
        <span> Time required: </span> 
        <?php echo get_post_meta($post->ID, 'time', true); ?> 
       </li> 
       <li> 
        <span> Will improve your knowledge of: </span> 
        <?php echo get_post_meta($post->ID, 'improve', true); ?> 
       </li> 
      </ul> 
     </div> 
    <?php endif; ?> 
    <?php the_content(); ?> 
</section> 
+0

Спасибо вам большое! Теперь он работает отлично. Итак, для справки в будущем, следует ли использовать двоеточие после оператора «if» вместо фигурных скобок, чтобы избежать появления PHP в таких ситуациях? –

+0

Нет, у вас его тоже нет. Его просто аккуратный в ситуациях, когда у вас больше HTML, чем PHP. – dciso

+0

Еще раз спасибо. Ты спасатель! –

Смежные вопросы