Manually Creating Custom Taxonomies
Manually Creating Custom Taxonomies ( tao the loai tuy chinh)
Add the following code in your theme’s
functions.php
file or in a site-specific plugin (recommended) to create a hierarchical custom taxonomy like categories://hook into the init action and call create_book_taxonomies when it fires add_action( 'init', 'create_topics_hierarchical_taxonomy', 0 ); //create a custom taxonomy name it topics for your posts function create_topics_hierarchical_taxonomy() { // Add new taxonomy, make it hierarchical like categories //first do the translations part for GUI $labels = array( 'name' => _x( 'Topics', 'taxonomy general name' ), 'singular_name' => _x( 'Topic', 'taxonomy singular name' ), 'search_items' => __( 'Search Topics' ), 'all_items' => __( 'All Topics' ), 'parent_item' => __( 'Parent Topic' ), 'parent_item_colon' => __( 'Parent Topic:' ), 'edit_item' => __( 'Edit Topic' ), 'update_item' => __( 'Update Topic' ), 'add_new_item' => __( 'Add New Topic' ), 'new_item_name' => __( 'New Topic Name' ), 'menu_name' => __( 'Topics' ), ); // Now register the taxonomy register_taxonomy('topics',array('post'), array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'topic' ), )); }
To create a non-hierarchical custom taxonomy like Tags, add this code in your theme’s
functions.php
or in a site-specific plugin://hook into the init action and call create_topics_nonhierarchical_taxonomy when it fires add_action( 'init', 'create_topics_nonhierarchical_taxonomy', 0 ); function create_topics_nonhierarchical_taxonomy() { // Labels part for the GUI $labels = array( 'name' => _x( 'Topics', 'taxonomy general name' ), 'singular_name' => _x( 'Topic', 'taxonomy singular name' ), 'search_items' => __( 'Search Topics' ), 'popular_items' => __( 'Popular Topics' ), 'all_items' => __( 'All Topics' ), 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => __( 'Edit Topic' ), 'update_item' => __( 'Update Topic' ), 'add_new_item' => __( 'Add New Topic' ), 'new_item_name' => __( 'New Topic Name' ), 'separate_items_with_commas' => __( 'Separate topics with commas' ), 'add_or_remove_items' => __( 'Add or remove topics' ), 'choose_from_most_used' => __( 'Choose from the most used topics' ), 'menu_name' => __( 'Topics' ), ); // Now register the non-hierarchical taxonomy like tag register_taxonomy('topics','post',array( 'hierarchical' => false, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'update_count_callback' => '_update_post_term_count', 'query_var' => true, 'rewrite' => array( 'slug' => 'topic' ), )); }
Notice the difference between two codes. Value for hierarchical argument is true for category-like taxonomy and false for tags-like taxonomies. Also in the labels array for non-hierarchical tags-like taxonomy, we have added null for parent_item and parent_item_colon arguments which means that nothing will be shown in the UI to create parent item.
Displaying Custom Taxonomies
Here is how you can display the terms you added to a custom taxonomy on your single post page. Add this single line of code in your
single.php
file within the loop:<?php the_terms( $post->ID, 'topics', 'Topics: ', ', ', ' ' ); ?>
You can add it in other files as well such as archive.php, index.php, and anywhere else you want to display the taxonomy.
By default your custom taxonomies use the
archive.php
template to display posts. However, you can create a custom archive display for them by creating taxonomy-{taxonomy-slug}.php
.Custom taxonomies can be used in many ways. Combine them with custom post types and custom meta boxes, and you can create highly customized content management system (CMS) built to meet your needs. Let us know how you are using custom taxonomies on your websites?
Chu y: sau khi them ma xong thi cap nhat lai permaklink
Nhận xét
Đăng nhận xét