Про записах в WordPress: де зберігаються в базі даних, і як їх отримати
Наведу приклад, як отримати 10 записів типу post (стандартні Записи в панелі адміністратора).
У загальних рисах, дані особливо виконувати не треба. У шаблонах вони вже встановлені, наприклад, в single.php дані по запису вже доступні для обробки в циклі
Якщо дані потрібно отримати десь поза циклом або шаблону, використовується запит WP_Query
Дані можна отримати за допомогою SQL запиту:
Всі три способи вище дадуть однаковий результат на виході.
Попередньо типи записів в WordPress: post, page, attachment, revision, nav_menu_item
Записи або пости (post)
Для Записів використовуються наступні файли шаблонів (в порядку пріоритету):
Файли шаблонів шукаються зверху вниз по списку в порядку пріоритету. Якщо файл шаблону знайдений в темі, використовується він, а пошук припиняється.
Сторінки (page)
Створюємо спеціальний шаблон сторінки (page)
Де-небудь всередині теми в корені або її піддиректорії створити файл з довільним назвою і розширенням php. наприклад, landing.php. Усередині ви можете розмістити абсолютно будь-який шаблон, який може бути абсолютно не схожий на інші сторінки сайту. Але головне, це помістити ось такий код в початок файлу:
Template Name - це спеціальна мітка, яка говорить WordPress про те, що цей файл - спеціальний шаблон.
Тепер при створенні і редагуванні будь-якої сторінки (page) подивіться в блоці праворуч з назвою Атрибути сторінки. в ньому в розділі Шаблон ви можете вибрати наш унікальний Лендінгем.
Як налаштувати шаблон сторінки
Для Сторінок (Page) використовується наступна ієрархія шаблонів. Як і з Записами. вказую в порядку пріоритету:
Прикріплення, вкладення або аттачменти (attachment)
Отримати вкладення для подальшої маніпуляції над ними можна за допомогою наступного коду:
Ієрархія шаблонів для аттачменті:
- true або -1. зберігає кожну версію чернетки. Варіант за замовчуванням
- false або 0. відключає збереження чернеток, крім 1 автосохранения
- Ціле число більше нуля: зберігається вказане число версій чернеток + 1 автосохранение. Більш ранні версії, що не укладаються в вказане число, автоматично видаляються
Елементи навігаційного меню (nav_menu_item)
Навігаційне меню (nav_menu_item) - це тип записів, який зберігає інформацію про одиниці навігації в WordPress. Перший, і поки єдиний тип запису, який використовується не як інші типи записів, дані для роботи і відображення на сайті отримують свої окремі функції.
Також, навігаційні меню за замовчуванням не включені. Щоб їх включити, потрібно оголосити про їх підтримку в functions.php:
- прописати
- Або зареєструвати місце під меню за допомогою register_nav_menu (). тоді підтримка меню включиться автоматично
Для отримання даних користуйтеся wp_nav_menu (). тому що WP_Query не працюватиме, і це відмінна риса типу постів nav_menu_item
Призначений для користувача Довільний тип запису (Custom Post Type, CPT WordPress)
Ось ми і підійшли до головного - того інструменту, який дозволяє розширити стандартний блогових функціонал WordPress до нескінченних можливостей: призначений для користувача довільний тип запису.
Найпростіший приклад, як можна зареєструвати наш новий тип запису sheensay_product
Тут sheensay_product - це назва нового типу записів. Воно не повинно конфліктувати з іншими в системі, про це докладніше нижче.
Також, в цьому варіанті воно служить ярликом цього типу записів, тобто присутній в URL. Якщо ж хочете вказати інший ярлик, наприклад продукція. робіть як на прикладі нижче
Як правильно підібрати назву нового типу записи
У WordPress зарезервовані наступні назви, які можна використовувати в якості імені нового типу записи:
Також, варто утриматися від використання префікса wp_ на початку назви, так як, можливо, це викличе конфлікти з майбутніми версіями ядра WordPress.
Найкраще, якщо ви будете випереджати назви довільними префіксами, пов'язаними з назвою вашого сайту, продукту або бренду, наприклад sheensay_product. тоді гарантовано уникнете потенційних конфліктів
Як зробити довільну таксономию
Шаблони для довільних типів постів
Все залежить від того, якого роду інформація відображається. Варіантів може бути 3: шаблон конкретної записи, шаблон архівів записів і шаблон таксономій
Шаблон сторінки записи
Перераховуються в порядку пріоритету
в нашому випадку, тут і далі - це sheensay_product
Шаблон архіву записів
Шаблон довільній таксономії
Тут імя_таксономіі - це sheensay_product_type. а імя_терміна - це ярлик тієї таксономії, що ви створите в адмінці.
Як отримати дані довільного типу записів (Custom Post Type WordPress) і відобразити на сайті
Отримати дані довільного типу записів (Custom Post Type) в WordPress для відображення на сайті можна тими ж способами, що і звичайні Записи та Сторінки
Якщо ж говорити про головний запит, по якому дані, наприклад, предзагружаются для виведення на головній сторінці або стандартних сторінках архівів, то довільні типи записів там відключені.
Тому, якщо ви хочете, щоб будь-яка створений тип записів відображався, скажімо, на сторінках архівів поряд зі звичайними записами, вам потрібно змінити фільтр предзагрузкі постів
Готовий клас для створення довільного типу записів з довільної таксономії
Щоб URL формувався, ви повинні перейти в настройки постійних посилань /wp-admin/options-permalink.php і налаштувати відмінний від простого вид загальних налаштувань
Як налаштувати структуру постійних посилань
Нижче сам код класу. Ви можете не вносити в нього ніяких змін, а поміняти ярлик типу записи можна в самому кінці в рядку new Sheensay_Product ( 'продукція');
Сам код пишеться в MU Plugin або в functions.php. Перший варіант кращий, так як в цьому випадку, ви не втратите доступу до контенту нового типу записів при зміні активної теми.
Тепер в адмінці ви можете зареєструвати нову продукцію і їх типи
Custom Post Type в адмінці
Створення довільного типу записів за допомогою плагіна Custom Post Type UI
Щоб не писати код вручну, ви можете скористатися готовим плагіном. Він досить популярний, і на момент написання статті має 300 тисяч завантажень з офіційного репозиторію WordPress.org
Завантажити плагін Custom Post Type UI з офіційного репозиторію WordPress.org
Ієрархія шаблонів теми в WordPress
Нижче ілюстрація ієрархії шаблонів, тобто як шукаються і підбираються відповідні шаблони (template) всередині теми (клікабельно):
Ієрархія шаблонів тим в WordPress
На закінчення
у мене довільний тип запису, зробив шаблон архіву для цього типу, висновок контенту через wp_query, а пагінація не працює (((коли скасовую архів в функції довільного типу записи (has_archive = false), і вказую шаблон для виведення шляхом створення нової сторінки з таким шаблоном - тоді пагінація працює. в чому може бути справа? Було б цікаво почитати продовження цієї статті з описом створення пагінацію. а за статтю спасибо большое!