В моей последней статье я писала о создании пользовательских типов записей в WordPress. Я рекомендую вам прочитать эту статью, прежде чем читать дальше. В этой статье я создала пользовательский тип записи «домашние животные». Создадим для них таксономии – рубрики и метки. А также создадим пользовательскую таксономию для стандартных записей.
Пользовательские таксономии
Опять заходим на сайт generatewp.com, выбираем Taxonomy Generator.
Вот код, который мы будем использовать для создания пользовательских таксономий в WordPress:
// Register Custom Taxonomy function custom_taxonomy() { $labels = array( 'name' => _x( 'Taxonomies', 'Taxonomy General Name', 'text_domain' ), 'singular_name' => _x( 'Taxonomy', 'Taxonomy Singular Name', 'text_domain' ), 'menu_name' => __( 'Taxonomy', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'parent_item' => __( 'Parent Item', 'text_domain' ), 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), 'new_item_name' => __( 'New Item Name', 'text_domain' ), 'add_new_item' => __( 'Add New Item', 'text_domain' ), 'edit_item' => __( 'Edit Item', 'text_domain' ), 'update_item' => __( 'Update Item', 'text_domain' ), 'view_item' => __( 'View Item', 'text_domain' ), 'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ), 'add_or_remove_items' => __( 'Add or remove items', 'text_domain' ), 'choose_from_most_used' => __( 'Choose from the most used', 'text_domain' ), 'popular_items' => __( 'Popular Items', 'text_domain' ), 'search_items' => __( 'Search Items', 'text_domain' ), 'not_found' => __( 'Not Found', 'text_domain' ), 'no_terms' => __( 'No items', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), ); $args = array( 'labels' => $labels, 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, ); register_taxonomy( 'taxonomy', array( 'post' ), $args ); } add_action( 'init', 'custom_taxonomy', 0 );
Структура этого кода очень похожа на создание пользовательского типа записей, поэтому, если вы не знаете, что поместить в эти массивы, вернитесь и прочитайте мой пост о создании пользовательских типов записей в WordPress. Есть только две вещи, на которые я хочу обратить внимание.
Во-первых, в функции register_taxonomy необходимо изменить array( ‘post’ ) на array ( ‘your_custom_post_type’ ), в нашем случае «pets», чтобы WordPress знал, что эти пользовательские таксономии связаны с вашим пользовательским типом сообщения, а не со стандартным типом сообщения.
register_taxonomy( 'taxonomy', array( 'pets' ), $args );
Если вы хотите добавить эту пользовательскую таксономию к стандартному типу post, сохраните массив как array(‘post’). На практике это будет выглядеть так:
Второе, что я хочу отметить, — это поле ‘hierarchical’. Если установлено значение false, как показано ниже, ваша пользовательская таксономия будет действовать как «Метки» WordPress, где вы просто вводите слова и разделяете их запятыми. И наоборот, если вы установите его в true, он будет действовать как «рубрики» WordPress, что дает вам возможность создавать родителей и подкатегории.
$args = array( 'labels' => $labels, 'hierarchical' => false,
Вы можете копировать и вставлять этот код столько раз, сколько вам нужно, чтобы создать столько таксономий, сколько требуется вашему проекту. Знание того, как контролировать и создавать эти пользовательские типы сообщений и пользовательские таксономии, имеет важное значение.
Давайте создадим в нашем примере рубрику и метки.
Вот, что у нас появилось в админ-панели
В следующей статье я расскажу, как выводить пользовательские записи с помощью WP_Query.