Хоч цей проект і задумувався як навчальний — щоб бодай трохи збільшити процент україномовного контенту — проте в якийсь момент я помітив, що ведення щоденника дозволяє краще структуризувати свій розвиток і подивитись на ситуацію збоку.
Аби так звані робочі записки не плутались під ногами людям, які прийшли сюди за уроками, не навчальні матеріали варто прибрати з основної стрічки.
Для робочих записок створюємо додаткову категорію, штибу “не дай собі всохнути”. Тепер робимо таблетку, аби матеріали, котрі підв’язані до цього розділу не виводились на головній.
Будучи людиною лінивою, я не став створювати власну тему WordPress і взяв за основу щось стандартне. Тому цикл виводу матеріалів на головній в мене такий:
while ( have_posts() ) : the_post(); /* * шматок вставки,який відповідає за вивід контенту */ get_template_part( 'template-parts/content', get_post_format() ); // End the loop.
Про цей цикл та варіанти його маніпуляцій ми ще поговоримо іншим разом, а на разі найпростішим вирішенням буде виставити умову з використанням in_category():
<?php if ( !in_category(3) ) { ?> # вставляємо вивід контенту <?php }
in_category( $category, $post) — вбудована функція вордпресу, яка скаже, чи належить даний пост до вказаних в дужках категорій.
Як бачите, класична конструкція передбачає параметри категорії та публікації. Проте, оскільки наша функція знаходиться всередині циклу, який перебирає матеріали, ми залишаємо лише перший параметр.
Є ще такий варіант використання
if ( !in_category( array('WordPress', 'php'), 777 )) { // робимо щось корисне }
Тут варто звернути увагу на два моменти подачі першого параметру array(‘WordPress’, ‘php’) :
- якщо ми хочемо подати список категорій на перевірку, то робити це найкраще з допомогою масиву;
- в якості параметру можна подавати як id категорії так і її slug — в цьому випадку загортаємо дані в лапки.
Спосіб може бути не зовсім ефективний, оскільки ми спочатку виводимо всі записи, а вже потім в циклі відіюємо непотрібні. Для більш гнучкої фільтрації задавати умови можна ще на початку запиту в базу даних з допомогою функції wp_get_recent_posts().