Що ми будемо створювати
Якщо для класифікації інформації на вашому сайті використовується кілька таксономій, вам може стати в нагоді можливість поділу записів в архіві таксономії по термінам другої таксономії.
У цій статті я покажу вам, як створити сторінку таксономії, на якій записи будуть виводитися відповідно до термінів другої таксономії, до якої вони також належать.
Потім я створю другий архів таксономії для другої таксономії, на якій записи будуть виводитися вже відповідно до термінів першої таксономії.
1. Створення теми
Для цієї статті я створю дочірню тему twentyfourteen з двома новими файлами шаблонів, стилями і файлом функцій. Якщо ви працюєте зі своєю власною темою, просто скопіюйте код в файл функцій вашої теми і додайте файли шаблонів.
Щоб створити тему, я розміщую в порожній папці теми файл з ім'ям style.css і додаю в нього наступний код:
Таким чином, ми створимо дочірню тему.
2. Реєстрація типу записів і таксономій
Для цієї статті я буду використовувати той же тип записів 'animals' і таксономії 'animal_cat'. які я використовувала в статті про створення шаблону користувальницького типу записів. Я також додам ще одну таксономию під назвою 'habitat'.
Для цього я створюю новий файл з ім'ям functions.php. По-перше, я додаю функцію, щоб зареєструвати мій тип записів:
Після цього я реєструю дві таксономії в одній функції:
Ми створили тип записів 'animal' і дві таксономії, які до нього застосовуються. Зверніть увагу, що я використовувала 'show_admin_column'. щоб пізніше мені було простіше адмініструвати записи.
Після додавання інформації та класифікації тварин у відповідності з різними таксономії, ці дані будуть відображатися в панелі адміністрування WordPress наступним чином.
3. Створення файлу шаблону першої таксономії
Наступним кроком є створення файлу шаблону для таксономії архіву 'animal_cat'. В папці теми створіть файл і назвіть його taxonomy-animal_cat.php. Тепер додайте в нього код «обгортки» з вашої теми (я скопіювала його з батьківської теми; якщо ви використовуєте власну тему, ваш код буде відрізнятися):
Визначення поточного запитуваної терміна
Для створення призначеного для користувача запиту по кожному терміну шаблон архіву буде використовувати WP_Query. Одним із запитуваних об'єктів буде термін поточної таксономії, який в даний момент відображається, тому нам потрібно визначити його і зберегти в якості змінної.
Нижче рядка get_header (). додайте наступний код:
Ви можете використовувати змінну $ animalcat пізніше.
Висновок заголовка сторінки
Зараз архіви не мають основного заголовка, так що нам потрібно додати його, використовуючи змінну, яку ми тільки що визначили.
Після відкривається тега
Отримання термінів другої таксономії
Далі потрібно отримати список термінів другої таксономії. Нижче коду, який ви тільки що додали, вставте такі рядки:
Даний код отримує список всіх термінів і зберігає його в масив. За допомогою 'hide_empty' ви можете приховати всі порожні терміни. Але це тільки запобігає запити термінів, до яких не належить жодна із записів, а не тих термінів, які не призначено постам, що належить запитуваній терміну.
створення циклу
Тепер створіть цикл, який буде запускатися для кожного терміна:
Кілька зауважень з цього коду:- Для кожного терміна визначається новий запит;
- Аргументи запиту включають термін другий таксономії ($ term) і поточний запитуваний термін ($ animalcat);
- Якщо таксономії застосовуються тільки до одного типу записів, ми могли б не використати аргумент 'post_type'. але я віддаю перевагу включати його на всякий випадок;
- Змінна $ term використовується для виведення заголовка кожного розділу, використовуючи $ term-> name.
Тепер збережемо файл шаблону і подивимося на архів таксономії для одного з термінів Animal Family:
Додавання перевірки записів для кожного запиту
Зараз шаблон виводить порожній список. Але це легко виправити, перевіривши, чи містить кожен запит записи.
Оберніть цикл в наступний код:
Тепер цикл буде виглядати наступним чином:
Таким чином, цикл WordPress НЕ буде запускатися, якщо запит не містить записів, а порожні заголовки будуть видалятися. Тепер сторінка архіву виглядає наступним чином:
Створення файлу шаблону для другої таксономії
Останнім кроком є створення файлу шаблону для другої таксономії.
Новий файл шаблону буде виглядати наступним чином:
Після внесення цих змін збережіть новий файл шаблона і подивіться, як виглядає ваш архів:
Тепер у вас є сторінка для другої таксономії, яка працює таким же чином, як і для першої таксономії.
висновок
З цієї статті ви дізналися, як відображати дані з використанням декількох таксономій. Можна додати третю таксономию одним з двох способів:- Повторити процес вилучення термінів, визначення запиту і запуск циклу для третього терміну після другого, щоб у вас вийшло два окремих списки;
- Звести дані з використанням всіх трьох умов, використавши кожну змінну $ term для $ habitat або $ animalcat. і додавши додатковий оператор foreach () всередині існуючого оператора foreach (). В такому випадку вам потрібно буде подумати про те, як вивести отримані дані: списком або за допомогою сітки.
Чому б вам не спробувати це?