Як вивести останні пости з кожної рубрики wordpress на одній сторінці

У цьому уроці ми розповімо, як зробити висновок останніх постів по кожній рубриці WordPress на одній сторінці.

Ось наочна демо-версія того, що ми збираємося зробити в цьому уроці:

Як вивести останні пости з кожної рубрики wordpress на одній сторінці

І сьогодні ми розглянемо, як це зробити. А саме:

  • Визначити всі рубрики для блогу
  • Вивести останні пости для кожної з них з мініатюрою зображення, якщо така є
  • Переконатися, що немає дублікатів рубрик
  • Красиво оформити зовнішній вигляд рубрик

Що нам знадобиться?

Щоб сьогоднішнє керівництво було для вас корисним в практичному сенсі, вам необхідно:

Налаштування дочірньої теми

Почнемо з установки теми. Створимо дочірню тему Twenty Fourteen за допомогою тільки двох файлів: style.css і index.php. Ось так виглядає наша таблиця стилів для нової дочірньої теми:

Ми повернемося до цього файлу в самому кінці при оформленні рубрик, а на даному етапі цього достатньо, щоб WordPress розпізнав дочірню тему.

Створюємо файл головної сторінки

Так як ми поставили перед собою мету вивести останні пости з кожної рубрики на головній сторінці, то нам потрібно створити новий файл index.php в щойно створеної нами дочірньої темі.

Створюємо порожній файл index.php

Для початку скопіюємо файл index.php з теми Twenty Fourteen і відредагуємо код з блоком циклу разом з іншим контентом. Ось як він повинен виглядати:

визначаємо рубрики

Для визначення рубрик в блозі потрібно відразу ж після відкриття тега

додати:

При цьому використовується функція get_categories () для складання списку рубрик. За замовчуванням список відображається в алфавітному порядку, а порожні рубрики в нього включені не будуть. І для цього не потрібно додавати ніяких додаткових аргументів.

Потім за допомогою foreach ($ categories as $ category) <> ми заявляємо WordPress, щоб він використовував кожну з цих рубрик та код всередині дужок. Потім потрібно створити запит для кожної з цих рубрик.

Визначаємо аргументи для запитів

Тепер потрібно визначити аргументи для запиту. Усередині дужок потрібно додати наступний код:

Ця дія виведе всього один запис з окремо взятої рубрики.

використовуємо запит

Вставляємо запит за допомогою класу WP_Query:

Це допоможе вивести мініатюру зображення, заголовок і анонс кожного запису у вигляді посилання.

Ось як це виглядає:

Як вивести останні пости з кожної рубрики wordpress на одній сторінці

Як бачите, виникла невелика проблема. На сторінці відобразилися найостанніші записи в кожній рубриці, але вони іноді повторюються, так як одна і та ж запис може бути доцільною для більш ніж однієї рубрики. І зараз нам потрібно це виправити.

Як уникнути дублювання записів?

Над рядком, де ви можете розмістити фотографії функцію get_categories (). додайте наступний рядок:

Це створить порожній масив $ do_not_duplicate. в якому ми розмістимо ID кожного виведеного поста. А потім перевіримо, що ID кожного з постів, для якого був створений запит, знаходиться в цьому масиві.

Потім додайте новий рядок під вибраним запитом, і в результаті перші два рядки будуть виглядати таким чином:

Так ID актуального поста буде додано до масив $ do_not_duplicate.

І нарешті додаємо новий аргумент в аргументи запитів, щоб уникнути виведення будь-яких посад в цьому масиві. Аргументи повинні виглядати ось так:

Для цього використовувався аргумент 'post__not_in', який шукає масив ID всіх записів.

Збережіть свій файл index.php і дивіться, що вийшло:

Як вивести останні пости з кожної рубрики wordpress на одній сторінці

Як бачите, записи вже не дублюються.

Оформляємо стилі для головної сторінки

Давайте надамо нашим рубриках привабливий зовнішній вигляд і трохи оформимо головну сторінку. Найпростіший спосіб - додати мініатюру і розмістити її по ліву сторону від запису.

Для цього в файл теми style.css потрібно додати наступний код:

Зараз сторінка виглядає набагато привабливіше, чи не так?

Як вивести останні пости з кожної рубрики wordpress на одній сторінці

Як застосувати цю техніку під різні типи контенту?

Цю техніку можна застосувати для різних типів контенту або таксономій. наприклад:

висновок

Джерело: code.tutsplus.com

Підкажіть, будь ласка, чи є плагін для відображення останніх постів в віджеті з можливістю довантажити без перезавантаження сторінки попередні останні пости?
Вибачте, що не в тему.

Схожі статті