Site icon Znatum.ru

Дизайн для постов с разными категориями в WordPress

post-design-by-category
Для того чтобы сделать сайт красивым и интересным мы можем создать уникальный дизайн для записей, относящихся к определенной категории. Так например все посты из категории «games» будут иметь красный заголовок, посты из категории «news» зеленый, а все остальные черный. Помогут нам в этом условия «if else» в PHP. Чтобы это реализовать дизайн постов по категориям нам необходимо залезть в файл index.php в нашей WordPress теме и найти приблизительно такой код:


<?php if ( have_posts() ) : ?>

<?php while ( have_posts() ) : the_post(); ?>

Сразу после этого кода в вашей теме должна быть прописана подобная функция вывода контента:


<?php get_template_part( 'content', get_post_format() ); ?>

Или вместо нее здесь могут быть отдельно прописаны функции вывода миниатюр записей, их заголовков и текстов. Например что-то такое:


<?php the_post_thumbnail(); ?>
<?php the_title(); ?>
<?php the_content(); ?>

В любом случае нам нужно найти код, который формирует запись на сайте и провести над ним небольшие манипуляции. Сперва перед функцией вывода контента мы пропишем условие, благодаря которому будем определять относится ли пост к категории «games» и если это так, то цвет заголовка будет красный :

<?php if (in_category('games')) : ?>
<?php the_post_thumbnail(); ?>
<div style="color: red"><?php the_title(); ?></div>
<?php the_content(); ?>

Далее проверим относится ли пост к категории «news» и если это так, то цвет заголовка станет зеленым:

<?php if (in_category('games')) : ?>
<?php the_post_thumbnail(); ?>
<div style="color: red;"><?php the_title(); ?></div>
<?php the_content(); ?>
<?php elseif (in_category('news')) : ?>
<?php the_post_thumbnail(); ?>
<div style="color: green;"><?php the_title(); ?></div>
<?php the_content(); ?>
 
<?php else : ?>
<?php the_post_thumbnail(); ?>
<?php the_title(); ?>
<?php the_content(); ?>
 
<?php endif; ?>

В конце пропишем условие  <?php else : ?>. Если пост не будет относиться ни к одной из нужных нам категорий то цвет его заголовка будет стандартным без применения стиля. В результате мы можем немного сократить наш код, записав его так:

<?php the_post_thumbnail(); ?>
 <?php if (in_category('games')) : ?>
<div style="color: red;"><?php the_title(); ?></div>
 <?php elseif (in_category('news')) : ?>
<div style="color: green;"><?php the_title(); ?></div>
 <?php else : ?>
<?php the_title(); ?>
 <?php endif; ?>
<?php the_content(); ?>
Exit mobile version