У різних CMS публікація різного контенту з відзнакою від простих статей вирішується по різному і часом за допомогою безлічі сторонніх плагінів, якщо немає розробника під рукою, хоча і при розробці доводиться писати цілий компонент для часом не найскладніших речей. Сьогодні я розповім про використання довільних типах постів в WordPress.
Що таке довільні пости?
Створення довільного типу контенту на сайті дозволяє публікувати не тільки матеріали і статті, як ми звикли уявляти, а й взагалі публікувати імена іменники, наприклад на сайтах з портфоліо, публікується робота, в список проектів, оприлюднюється проект ну і так можна далі «рецепт, книга, рецензія, новина, реліз і т.д. ». Не варто використовувати довільні пости для поділу всіх записів у блозі, існують також таксономії, рубрики, мітки та інші способи для позначки контенту і сортування.
Ось деякі приклади з реалізації довільних типів постів на наших і інших сайтах.
Приклади з наших робіт
- Нпрофі.ru - база нерухомості
- Використання таксономії і довільних типів постів для створення бази нерухомості. З пошуком і сортуванням по таксаноміям.
- injener.org - публікація виконаних проектів
Приклади інших сайтів
Додавання довільного типу поста
Як тільки ви створите новий довільний тип поста в, WordPress вам буде доступно таке ж управління як і зі звичайними записами. Всю функціональність ви можете легко додати самі.
Для прикладу я буду створювати довільний тип запису - продуктів. Для інтернет магазину наприклад публікація продуктів. Створюємо тип з мінімальними настройками.
Починаючи з версії WordPerss 2.9 була представлена функція register_post_type (), однак повну свою міць і функціональність вона отримали лише у версії WordPress 3.0
Перш ніж почати, потрібно вказати ім'я тип поста, дві мітки (назва посиланням в адмін панелі) і чи можна цей пост публікувати.
Додаємо довільний тип поста в wordpress. Даний код ви можете вставити в functions.php вашої теми наприклад.
add_action # 40; 'Init'. 'Create_my_post_types' # 41; ;
function create_my_post_types # 40; # 41; # 123; register_post_type # 40; 'Product'. array # 40; 'Labels' => array # 40; 'Name' => __ # 40; 'Продукти' # 41 ;. 'Singular_name' => __ # 40; 'Продукт' # 41; # 41 ;. 'Public' => true. # 41; # 41; ;
# 125;
Ми додали дію при ініціалізації виклик нашій функції. За допомогою функції register_post_type () додали новий довільний тип запису. В якості аргументів передається першим аргументом назву типу та масив з великою кількістю аргументів і міток. Тепер в адміністративній панелі у вас повинно з'явиться однойменне створене вами меню. Розглянемо прийняті аргументи у функції register_post_type () більш детально.
'Labels' => array # 40;
'Name' => __ # 40; 'Продукти' # 41 ;.
'Singular_name' => __ # 40; 'Продукт' # 41 ;.
'Add_new' => __ # 40; 'Додати' # 41 ;.
'Add_new_item' => __ # 40; 'Новий продукт' # 41 ;.
'Edit' => __ # 40; 'Редагувати' # 41 ;.
'Edit_item' => __ # 40; 'Редагувати продукт' # 41 ;.
'New_item' => __ # 40; 'Новий продукт' # 41 ;.
'View' => __ # 40; 'Подивитися' # 41 ;.
'View_item' => __ # 40; 'Переглянути товар' # 41 ;.
'Search_items' => __ # 40; 'Пошук продуктів' # 41 ;.
'Not_found' => __ # 40; 'Жодного продукта' # 41 ;.
'Not_found_in_trash' => __ # 40; 'В кошику немає товарів' # 41 ;.
'Parent' => __ # 40; 'Батьківський продукт' # 41 ;. # 41 ;.
Опис \ description
description - аргумент приймає опис вашого плагіна. На даний момент я не зустрічав виведення цього параметра в адмін панелі і вказівку цього аргументу особливої ролі не грає.
Можливості \ capability_type
Для більшості людей, які потребують контролю над цими речами, простіше просто змінити capability_type щось на зразок мого прикладу product. WordPress автоматично переключиться. Наприклад, edit_post здатність стане edit_product.
/ * Глобальний контроль продуктів. * /
'Capability_type' => 'product'.
Підтримка \ supports
supports - Також ми можемо вказати які поля доступні для редагування нашого поста на сторінці додавання поста. За умовчання це title і editor. Ось доступні варіанти
'Supports' => array # 40; 'Title'. 'Editor'. 'Excerpt'. 'Custom-fields'. 'Thumbnail' # 41 ;.
Таксономії \ Taxonomies
Якщо у вас вже є таксономії, ви можете дозволити своїм постам також використовувати ці таксономії. Ви просто повинні встановити в масив ім'я таксономії, які ви хотіли використовувати.
Про інтеграції таксономій і довільних типів постів я розповім трохи пізніше.