تعریف Custom Taxonomy در وردپرس – مقدمه:
در دهمین قسمت از چک لیست طراحی قالب وردپرس ، با یک سناریو واقعی برای ساخت قالب وردپرس ، می خواهیم تا با تعریف Custom Taxonomy ، یک طبقه بندی سفارشی در وردپرس ایجاد کنیم.
در این قسمت با نحوه کار تابع register_taxonomy آشنا خواهیم شد و در می یابیم که برای ساخت یک طبقه بندی سفارشی، چه پارامترهایی را باید داخل آن تنظیم نماییم.
تعریف Custom Taxonomy یکی از اصلی ترین ویژگی های وردپرس برای سفارشی سازی آن است. با یادگیری نحوه تعریف Custom Taxonomy در وردپرس، شما قابلیت سفارشی سازی هر محتوایی را در وردپرس خواهید داشت.
بخش اول: تعریف Custom Taxonomy در وردپرس
سایت رسمی وردپرس، تعریف Custom Taxonomy (همانند تعریف custom post type) را در قالب وردپرس پیشنهاد نمی کند. دلیل این کار این می باشد که کلیه اطلاعات مربوط به آن گروه بندی سفارشی، با سوئیچ کردن قالب توسط کاربر، همه ناپدید خواهد شد. بنابراین پیشنهاد وردپرس این است که به جای تعریف Custom Taxonomy در قالب از تعریف آن در پلاگین استفاده شود تا در صورت عوض شدن قالب وردپرس، اطلاعات مربوط به طبقه بندی سفارشی در سایت وردپرسی شما باقی بماند.
البته راهکارهای دیگری نیز برای این کار وجود دارد مانند استفاده از Must Use Plugin تا در هر صورت حتی با switch کردن بین تم ها، همچنان دسته بندی سفارشی شما در سایت وردپرسی شما قابل دسترس باشد. برای اطلاعات بیشتر می توانید به لینک مربوط به آن در پایین صفحه مراجعه کنید.
در قسمت قبل که مربوط به تعریف custom post type بود، فرض کردیم که می خواهیم یک پست سفارشی با نام کتاب ایجاد کنیم. حال فرض کنید که تصمیم گرفته ایم این پست سفارشی، دو طبقه بندی سفارشی مجزا یا همان Custom Taxonomy تعریف نماییم. همچنین می خواهیم تا آن را در قالب وردپرس ایجاد کنیم.
فرض کنید یکی از این گروه بندی های سفارشی ژانر (یا همان ژانر کتاب بوده) که می خواهیم آن را به صورت سلسله مراتبی یا Hierarchical تعریف کنیم و دیگری گروه بندی نویسنده می باشد که نمی خواهیم به صورت سلسه مراتبی یا همان Hierarchical تعریف نماییم.
برای تعریف Custom Taxonomy با نام ژانر یا genre و همین طور نویسنده یا writer ، مراحل زیر را انجام می دهید:
include get_template_directory() . '/inc/custom-post-type.php';
// hook into the init action and call create_book_taxonomies when it fires add_action( 'init', 'create_book_taxonomies', 0 ); // create two taxonomies, genres and writers for the post type "book" function create_book_taxonomies() { // Add new taxonomy, make it hierarchical (like categories) $labels = array( 'name' => _x( 'Genres', 'taxonomy general name', 'textdomain' ), 'singular_name' => _x( 'Genre', 'taxonomy singular name', 'textdomain' ), 'search_items' => __( 'Search Genres', 'textdomain' ), 'all_items' => __( 'All Genres', 'textdomain' ), 'parent_item' => __( 'Parent Genre', 'textdomain' ), 'parent_item_colon' => __( 'Parent Genre:', 'textdomain' ), 'edit_item' => __( 'Edit Genre', 'textdomain' ), 'update_item' => __( 'Update Genre', 'textdomain' ), 'add_new_item' => __( 'Add New Genre', 'textdomain' ), 'new_item_name' => __( 'New Genre Name', 'textdomain' ), 'menu_name' => __( 'Genre', 'textdomain' ), ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'genre' ), ); register_taxonomy( 'genre', array( 'book' ), $args ); // Add new taxonomy, NOT hierarchical (like tags) $labels = array( 'name' => _x( 'Writers', 'taxonomy general name', 'textdomain' ), 'singular_name' => _x( 'Writer', 'taxonomy singular name', 'textdomain' ), 'search_items' => __( 'Search Writers', 'textdomain' ), 'popular_items' => __( 'Popular Writers', 'textdomain' ), 'all_items' => __( 'All Writers', 'textdomain' ), 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => __( 'Edit Writer', 'textdomain' ), 'update_item' => __( 'Update Writer', 'textdomain' ), 'add_new_item' => __( 'Add New Writer', 'textdomain' ), 'new_item_name' => __( 'New Writer Name', 'textdomain' ), 'separate_items_with_commas' => __( 'Separate writers with commas', 'textdomain' ), 'add_or_remove_items' => __( 'Add or remove writers', 'textdomain' ), 'choose_from_most_used' => __( 'Choose from the most used writers', 'textdomain' ), 'not_found' => __( 'No writers found.', 'textdomain' ), 'menu_name' => __( 'Writers', 'textdomain' ), ); $args = 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' => 'writer' ), ); register_taxonomy( 'writer', 'book', $args ); }
دقت در تعریف Custom Taxonomy برای Hierarchical بودن یا نبودن آن
در نظر داشته باشید که شما برای ساخت یک رده بندی سفارشی یا همان Custom Taxonomy ، می توانید آن را به صورت Hierarchical یا None-hierarchical تعریف نمایید. در صورتی که آن را به صورت Hierarchical تعریف نمایید، کلیه term های موجود در دسته بندی سفارشی شما، خود می توانند دارای دسته بندی های مجزایی در داخل خود باشند در صورتی که در حالت دیگر، ساختار شما به صورت تک سطحی خواهد بود.
چند نکته در فراخوانی register_taxonomy: برای دیدن لیست کلیه پارامتر های مورد استفاده در این تابع، می توانید از لینک های زیر استفاده نمایید. ذکر چند نکته در مورد پارامترهای این تابع، در این بخش، خالی از لطف نیست که به آن ها اشاره می گردد:
نکته مهم:
مطالب فوق از فیلم های آموزشی طراحی قالب وردپرس گروه آموزشی سون لرن، برداشت شده و با تغییراتی در آن، به عنوان چک لیست در اینجا قرار داده شده است.
هدف ما، مرتب سازی این مطالب و داشتن چک لیست برای انجام تکراری کارهایی است که به طور روزمره، برای پروژه های طراحی قالب وردپرس انجام می دهیم. برای دسترسی به فیلم این آموزش ها به صورت کامل، می توانید به سایت سون لرن مراجعه فرمایید.
راهنما برای چک لیست طراحی قالب وردپرس:
شما می توانید از لینک های زیر به عنوان مرجع های اصلی برای چک لیست طراحی قالب وردپرس در قسمت بالا استفاده نمایید:
راهنما برای خواندن سایر مقالات سایت به صورت دسته بندی شده:
شما می توانید از طریق لینک های کاربردی زیر به سایر مقالات سایت که کاملا بصورت طبقه بندی شده وجود دارد، مراجعه نموده و از آن ها استفاده کنید:
ثبت ديدگاه