#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 . Докажите, что я ошибаюсь, на примере кода, но я не вижу, как шорткоды могут этого достичь. На самом деле этот ответ не заслуживает ничего, кроме отрицательного ответа, но у меня слишком хороший день.