Справка по условному оператору PHP в WordPress

#php #wordpress #if-statement #echo #categories

#php #wordpress #if-statement #echo #Категории

Вопрос:

Я использую WordPress. У меня есть веб-сайт с обзором фильмов под названием http://filmblurb.org . Для своих сообщений в блоге я пытаюсь создавать сообщения с разными категориями. В категории «Отзывы» у меня есть поле «Подробности», которое служит метаинформацией для всех моих обзоров. Проблема в том, что когда я пытаюсь создать сообщение с категорией «Функции» или что-то еще, это поле «Подробности» по-прежнему остается. В принципе, я хочу попытаться создать оператор PHP if, который будет возвращать следующую последовательность кода только тогда, когда я пишу только сообщение «Отзывы». Я использую тег «get_post_meta» в WordPress, чтобы заполнить это поле «Подробности» для каждого поста «Отзывы», который я пишу. Пример сообщения можно найти здесь: http://www.filmblurb.org/reviews/97 . Кто-нибудь может мне помочь в этом? Я был бы признателен. Дайте мне знать, если мне нужно будет объяснить больше.

 <div class="box">
    <div class="boxheader">Details</div>
    <div class="text">
    <h1>Genre</h1>
    <p><?php echo get_post_meta($post->ID, 'genre', true); ?></p>
    <h1>Rated</h1>
    <p><?php echo get_post_meta($post->ID, 'rated', true); ?></p>
    <h1>Release Date</h1>
    <p><?php echo get_post_meta($post->ID, 'releasedate', true); ?></p>
    <h1>Runtime</h1>
    <p><?php echo get_post_meta($post->ID, 'runtime', true); ?></p>
    <h1>Director</h1>
    <p><?php echo get_post_meta($post->ID, 'director', true); ?></p>
    <h1>Cast</h1>
    <p><?php echo get_post_meta($post->ID, 'cast', true); ?></p>
    <h1>Grade</h1>
    <p><?php echo get_post_meta($post->ID, 'grade', true); ?></p>
    </div>
</div>
  

Ответ №1:

  <?php if(is_category('reviews')) : ?>
     <div class="box">
         <div class="boxheader">Details</div>
         <div class="text">
             <h1>Genre</h1>
             <p><?php echo get_post_meta($post->ID, 'genre', true); ?></p>
             <h1>Rated</h1>
             <p><?php echo get_post_meta($post->ID, 'rated', true); ?></p>
             <h1>Release Date</h1>
             <p><?php echo get_post_meta($post->ID, 'releasedate', true); ?></p>
             <h1>Runtime</h1>
             <p><?php echo get_post_meta($post->ID, 'runtime', true); ?></p>
             <h1>Director</h1>
             <p><?php echo get_post_meta($post->ID, 'director', true); ?></p>
             <h1>Cast</h1>
             <p><?php echo get_post_meta($post->ID, 'cast', true); ?></p>
             <h1>Grade</h1>
             <p><?php echo get_post_meta($post->ID, 'grade', true); ?></p>
         </div>
     </div>
 <?php endif; ?>
  

Параметром может быть название категории, slug или ID.
Для получения дополнительной информации проверьте wordpress codex по условному тегу «is_category()»

Ответ №2:

Для этого у вас есть несколько вариантов.

Вероятно, лучшим из них является создание специального шаблона для каждой категории сообщений. Если вы не знаете, что такое шаблоны, узнайте все об этом здесь: http://codex.wordpress.org/Pages#Page_Templates

Другие способы сделать это находятся в CSS.

в теге body вы можете ввести короткий код, который вернет некоторую информацию о вашей текущей странице категории.

Используя определенный класс, вы можете установить для класса .box значение display:none .

Я надеюсь, что это достаточно ясно.

Комментарии:

1. Мне жаль указывать, что это в основном не стоит читать. шаблоны страниц называются так не просто так. Они применяются к страницам, а не к сообщениям. Теоретически .box div может быть скрыт css, но даже тогда ему нужно будет присвоить дополнительный класс или идентификатор на основе категории. Для чего, в свою очередь, потребуется условный тег is_category . Докажите, что я ошибаюсь, на примере кода, но я не вижу, как шорткоды могут этого достичь. На самом деле этот ответ не заслуживает ничего, кроме отрицательного ответа, но у меня слишком хороший день.