Taxonomy در معنا یعنی "طبقه بندی"، در وردپرس امکان دسته بندی مطالب وجود دارد. بطور مثال شما یک پست می خواهید در سایت ایجاد کنید از نوع محصول ( در مثال یعنی یک Custom Post Type دارید به نام Product، برای یادگیری بیشتری پست قبلی را بخوانید ) که دارای دسته بندی است. دسته ی محصولات که شامل TV، Laptop و PC است.
برای ایجاد یک دسته بندی جدید نیاز هست از قابلیت Custom Taxonomy استفاده کنیم. برای این کار نیاز هست در فایل functions.php یک تابع اضافه کنید و آن را در وردپرس Hook کنید. به شکل زیر :
// Register Custom Taxonomy function custom_taxonomy() { $labels = array( 'name' => _x( 'Genres', 'Taxonomy General Name', 'text_domain' ), // نام عمومی مورد استفاده برای دسته بندی 'singular_name' => _x( 'Genre', 'Taxonomy Singular Name', 'text_domain' ), // نام مفرد مورد استفاده برای این دسته بندی 'menu_name' => __( 'Genre', 'text_domain' ), //نام مورد استفاده در 'all_items' => __( 'All Genres', 'text_domain' ), // نام مورد استفاده برای دکمه نمایش تمامی دسته بندی ، بطور مثال اگر نام دسته بندی "ژانر" باشد این کلمه بهتر است "تمامی ژانرها" باشد. 'parent_item' => __( 'Parent Genre', 'text_domain' ), // نام دسته بندی والد برای پست ملحق شده به دسته ی خاص 'parent_item_colon' => __( 'Parent Genre:', 'text_domain' ), // نام دسته بندی والد در عنوان نام آن در جدول نمایش پست ها 'new_item_name' => __( 'New Genre Name', 'text_domain' ), // عنوان مورد استفاده برای نمایش دکمه ی یک دسته بندی جدید 'add_new_item' => __( 'Add New Genre', 'text_domain' ), // عنوان مورد استفاده برای نمایش دکمه ی یک دسته بندی جدید که در بالای جدول نمایش داده میشود. 'edit_item' => __( 'Edit Genre', 'text_domain' ), // عنوان مورد استفاده برای دکمه ی ویرایش دسته 'update_item' => __( 'Update Genre', 'text_domain' ), // عنوان مورد استفاده برای دکمه ی بروزرسانی دسته 'separate_items_with_commas' => __( 'Separate genres with commas', 'text_domain' ), // متن مورد استفاده برای این عنوان که با گذاشتن کاما در بین دسته ها میتوان دسته های جدید را در پست مورد نظر ساخت. 'search_items' => __( 'Search genres', 'text_domain' ), // عنوان مورد استفاده برای دکمه ی جستجو در دسته ها 'add_or_remove_items' => __( 'Add or remove genres', 'text_domain' ), // عنوان مورد استفاده برای اضافه یا پاک کردن دسته ها 'choose_from_most_used' => __( 'Choose from the most used genres', 'text_domain' ), // عنوان مورد استفاده برای قابلیتی که وردپرس برای دسته بندی گذاشته به این معنا که میتوان از بیشترین دسته مورد استفاده ، دسته ی پست را انتخاب کرد. ); $args = array( 'labels' => $labels, 'hierarchical' => true, // اضافه کردن قابلیت فرزند و والد برای دسته هت 'public' => true, 'show_ui' => true, // تولید یک رابط کابری برای مدیریت دسته بندی 'show_admin_column' => true, // راه اندازی قابلیت اضافه نمودن دسته ی جدید هنگام اضافه کردن پست جدید 'show_in_nav_menus' => true, // اضافه کردن قابلیت مدیریت دسته بندی در navigation 'show_tagcloud' => true, // اضافه کردن قابلیت Tag Cloud ); register_taxonomy( 'genre', 'post', $args ); } // Hook into the 'init' action add_action( 'init', 'custom_taxonomy', 0 );
در نهایت بعد از اضافه کردن این کد در functions.php قالب، در داشبورد وردپرس Custom Taxonomy جدید را میبینید.
برای اضافه نمودن این دسته بندی در یک Custom Post Type جدید جای post از Post Type Keyای که برای Custom Post Type قرار دادید استفاده کنید. بطور مثال اگر برای پست های product استفاده کنید نیاز هست کد زیر را جایگزین کنید.
register_taxonomy( 'genre', 'products', $args );
در نهایت کاربر در محیط مدیریتی هنگام اضافه کردن پست جدید، در وردپرس نمایه زیر را خواهد دید.
حالا برای نمایش لیست Taxonomy جدید باید از متد get_term_link در وردپرس استفاده کنید. کد نمونه ی زیر دسته بندی با Custom Taxonomy Key تحت عنوان "genre" که بالا ساختیم را استفاده میکند.
<?php $taxonomy = 'genre'; // Custom Taxonomy Key $args1=array( 'include'=> array(12,30) ); // نمایش دو دسته با آی دی 12 و 30 $terms = get_terms('stores',$args1 ); echo '<ul>'; foreach ($terms as $term) { $term_link = get_term_link( $term, 'stores' ); if( is_wp_error( $term_link ) ) echo '<li><a href="' . $term_link . '">' . $term->name . '</a></li>'; } echo '</ul>'; ?>
دیدگاهها (۲)
MJavad
۲۱ مرداد ۹۴ ، ۱۳:۲۵
مری
۱۰ بهمن ۹۴ ، ۱۲:۰۴