Запис #4 "register_taxonomy"

Додано: 2015-10-17 02:53:10 'admin

Функція register_taxonomy() використовується wordpress для додавання власних таксономій до проекту. Або для зміни вже існуючої. Як стане зрозуміло з опису параметрів функції, а точніше її аргументів - це дуже потужний інструмент у WordPress.

Синтаксис.

register_taxonomy($taxonomy, $object_type, $args);

Функція приймає три обов'язкові параметри:

- $taxonomy. Строка. Назва таксономії, що створюється або оновлюється. 
$object_type. Строка/масив. Назва типу або типів (масив). Якщо, наприклад, в цьому параметрі вказати post, то звичайні пости отримають таксономію, що створюється.
$args. Масив. Масив даних, аргументів, що визначають таксономію.

До останнього параметру$args відносяться такі аргументи:

- label. Строка. Задає назву таксономії у множинному числі. Якщо не задана, використовує $labels->name із аргументу нижче.
- labels. Масив. Визначає цілий комплекс міток для таксономії. Це потрібно, щоб забезпечити правильний вивід назви таксономії у різних випадках. В консолі адміністратора, у формі для користувача, в результатах пошуку. Цей масив складається із наступних міток:
- - name. Строка. Визначає назву таксономії у множиному числі. Якщо не вказано, використовує _x('Post Tags', 'taxonomy general name') або _x('Categories', 'taxonomy general name')
- - singular_name. Строка. Визначає назву для однієї одиниці таксономії. Якщо не вказано, використовує _x('Post Tag', 'taxonomy singular name') або _x('Category', 'taxonomy singular name');
- - menu_name. Строка. Назва меню. Якщо не вказано, використовує назву name.
- - all_items. Строка. Назва для всіх елементів таксономії. Якщо не вказано, використовує __( 'All Tags' ) або __( 'All Categories' ).
- - edit_item. Строка. Назва для елементу, що редактується. Якщо не вказано, використовує __( 'Edit Tag' ) або __( 'Edit Category' ).
- - view_item. Строка. Назва для елементу, що переглядається. Якщо не вказано, використовує __( 'View Tag' ) або __( 'View Category' ).
- - update_item. Строка. Назва для елементу, що редактується. Якщо не вказано, використовує __( 'Update Tag' ) або __( 'Update Category' ).
- - add_new_item. Строка. Назва для нового елементу таксономії. Якщо не вказано, використовує __( 'Add New Tag' ) або __( 'Add New Category' ).
- - new_item_name. Строка. Текст для назви нового елементу таксономії. Якщо не вказано, використовує __( 'New Tag Name' ) або __( 'New Category Name' ).
- - parent_item. Строка. Назва для батьківського елементу. Якщо не вказано, використовує __( 'Parent Category' ).
- - parent_item_colon. Строка. Теж саме, що й parent_item але додає в кінці знак ":". Якщо не вказано, використовує __( 'Parent Category:' ).
- - search_items. Строка. Назва для пошуку таксономії. Якщо не вказано, використовує __( 'Search Tags' ) або __( 'Search Categories' ).
- - popular_items. Строка. Текст для популярних елементів таксономії. Якщо не вказано, використовує __( 'Popular Tags' ) або null
- - separate_items_with_commas. Строка. Текст, що описує розділення елементів комами. Якщо не вказано, використовує __( 'Separate tags with commas' ) або null
- - add_or_remove_items. Строка. Текст додавання або видалення елементів у консолі адміністратора. Якщо не вказано, використовує __( 'Add or remove tags' ) або null.
- - choose_from_most_used. Строка. Текст для вибору. Якщо не вказано, використовує __( 'Choose from the most used tags' ) або null.
- - not_found. Строка. Текст для результатів пошуку, коли ні один елемент таксономії не був знайдений.  Якщо не вказано, використовує _( 'No tags found.' ) or __( 'No categories found.' ).
public. Булеве значення. При значенні true відображає таксономію в консолі адміністратора. 
show_ui. Булеве значення. При значенні true відображає елементи управління таксономієюв консолі адміністратора.
- show_in_menu. Булеве значення або строка. Визначає місце виведення таксономії в консолі. При цьому значення show_ui повинно бути true. При:
- - false не відображає таксономію в консолі
- - true відображає у верхній частині консолі
- - 'будь-яка строка' при сторінці верхнього рівня, наприклад 'tools.php' або 'edit.php?post_type=page', типи цієї таксономії будуть розміценні на рівень нижче.
show_in_nav_menus. Булеве значення. При значенні true елементи таксономії будуть у навігаційному меню.
show_tagcloud. Булеве значення. При значенні true буде створено віджет із хмарою тегів таксономії.
show_in_quick_edit. Булеве значення.  При значенні true відображає таксономію в таблиці швидкого редагування.
meta_box_cb. Строка. Callback функція, яка визначає поведінку таксономії в метабоксі.
show_admin_column. Булеве значення.  При значенні true відображає колонку таксономії в таблиці типів записів.
description. Строка. Опис таксономії.
hierarchical. Булеве значення.  При значенні true буд встановлено ієрархічний тип таксономії. При false - теговий.
update_count_callback. Строка. Назва функції, яка буде підраховувати кількість елементів в таксономії.
query_var. Булеве значення або строка. При значенні false вимикає можливість звернення до таксономії із строки запиту. Або вказується строка, по якій буде відбуватись запит до таксономії.
rewrite. Булеве значення або масив. При значенні false вимикає перезапис. При масиві - можна задати вільний параметр запиту. Аргументи масиву:
- - slug. Строка. Префікс для запитів до таксономії.
- - with_front. Булеве значення. Встановлює префікс для постійного посилання
- - hierarchical. Булеве значення. При значенні true вмикає ієрархічну структуру УРЛ.
- - ep_mask. Використовується для постійних посилань. 
capabilities. Масив. Масив з правами доступу до таксономії. Масив має значення:
- - manage_terms - 'manage_categories'
- - edit_terms - 'manage_categories'
- - delete_terms - 'manage_categories'
- - assign_terms - 'edit_posts'
- sort. Булеве значення. При значенні true фіксує додавання елементів таксономії до того порядку, в якому вони додаються.
_builtin. Булеве значення. При значенні true таксономія переходить у внутрішні таксономії WordPress. Для розробників.

Приклад:

Функція register_taxonomy() по своїй природі повинна виконуватись під час хуків. Це забезпечує реєстрацію необхідних таксономій під час ініціалізації WordPress.

<?php
// Хук на ініціалізацію із створенням таксономії
add_action( 'init', 'create_jam_taxonomies', 0 );
function create_jam_taxonomies() {
	//Маркери таксономії
	$labels = array(
		'name'              => "Варення",
		'singular_name'     => "Варення",
		'search_items'      => "Пошук варення",
		'all_items'         => "Все варення",
		'parent_item'       => "Рівень вище для варення",
		'parent_item_colon' => "Рівень вище для варення:",
		'edit_item'         => "Редагування варення",
		'update_item'       => "Оновлення варення",
		'add_new_item'      => "Додати нове варення",
		'new_item_name'     => "Нове варення",
		'menu_name'         => "Варення",
	);
//аргументи таксономії
	$args = array(
		'hierarchical'      => true,
		'labels'            => $labels,
		'show_ui'           => true,
		'show_admin_column' => true,
		'query_var'         => true,
		'rewrite'           => array( 'slug' => 'jam' ),
	);
//реєстрація таксономії
	register_taxonomy( 'jam', array( 'post', 'items' ), $args );
}
?>

Якщо вставити цей код, наприклад, в файл functions.php активного шаблону, то можна спостергати наступний результат:

або при створенні:

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

Офіційний опис.

register_taxonomy 

Коментарі: