במצבים בהם אתם עובדים על פרוייקט ונדרשים ליצור מספר טקסונומיות, נכון יהיה להשתמש בפונקציה זו מאשר ליצור פונקציה לכל טקסונומיה בנפרד. הכניסה במערך את הפרמטרים של כל טקסונומיה והפונקציה כבר תדאג לשאר…
<?php
/**
* Register Multiple Taxonomies
*
*/
function register_multiple_taxonomies() {
$taxonomies = array(
array(
'slug' => 'job-department',
'single_name' => 'Department',
'plural_name' => 'Departments',
'post_type' => 'jobs',
'rewrite' => array( 'slug' => 'department' ),
),
array(
'slug' => 'job-type',
'single_name' => 'Type',
'plural_name' => 'Types',
'post_type' => 'jobs',
'hierarchical' => false,
),
array(
'slug' => 'job-experience',
'single_name' => 'Min-Experience',
'plural_name' => 'Min-Experiences',
'post_type' => 'jobs',
),
);
foreach( $taxonomies as $taxonomy ) {
$labels = array(
'name' => $taxonomy['plural_name'],
'singular_name' => $taxonomy['single_name'],
'search_items' => 'Search ' . $taxonomy['plural_name'],
'all_items' => 'All ' . $taxonomy['plural_name'],
'parent_item' => 'Parent ' . $taxonomy['single_name'],
'parent_item_colon' => 'Parent ' . $taxonomy['single_name'] . ':',
'edit_item' => 'Edit ' . $taxonomy['single_name'],
'update_item' => 'Update ' . $taxonomy['single_name'],
'add_new_item' => 'Add New ' . $taxonomy['single_name'],
'new_item_name' => 'New ' . $taxonomy['single_name'] . ' Name',
'menu_name' => $taxonomy['plural_name']
);
$rewrite = isset( $taxonomy['rewrite'] ) ? $taxonomy['rewrite'] : array( 'slug' => $taxonomy['slug'] );
$hierarchical = isset( $taxonomy['hierarchical'] ) ? $taxonomy['hierarchical'] : true;
register_taxonomy( $taxonomy['slug'], $taxonomy['post_type'], array(
'hierarchical' => $hierarchical,
'labels' => $labels,
'show_ui' => true,
'query_var' => true,
'rewrite' => $rewrite,
));
}
}
add_action( 'init', 'register_multiple_taxonomies' );
הגדרתי פעם משהו אפילו יותר קצר, גם לטקסונומיות וגם ל Post Types.
עבור טקסונומיות יצרתי פונקציה שמקבלת name & label, labels כאשר name = שם הפוסט-טייפ, label = שם לתצוגה ביחיד, labels = שם לתצוגה ברבים.
הפונקציה מבצעת קריאה ל register_post_type עם ההגדרות הבסיסיות (אם ישנם Post Types מסויימים עם הגדרות אחרות מהרגיל – הוספתי גם את זה כמערך הגדרות). הפונקציה הזו כתובה ב functions.php היכנשהו, פעם אחת, ובלי קשר יש משהו כזה:
ומשהו דומה עבור Post Types.
היי חנה,
תודה ששיתפת אותנו 🙂