Search

יצירת מספר טקסונומיות בפונקציה אחת

במצבים בהם אתם עובדים על פרוייקט ונדרשים ליצור מספר טקסונומיות, נכון יהיה להשתמש בפונקציה זו מאשר ליצור פונקציה לכל טקסונומיה בנפרד. הכניסה במערך את הפרמטרים של כל טקסונומיה והפונקציה כבר תדאג לשאר…

<?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' );
מצאתם טעות בקוד? הסניפט לא עובד לכם? רישמו לי בתגובות ואני מבטיח לטפל בכך במהרה ולספק סניפט תקין...
2 תגובות...
  • חנה 16 אוקטובר 2018, 23:02

    הגדרתי פעם משהו אפילו יותר קצר, גם לטקסונומיות וגם ל Post Types.

    עבור טקסונומיות יצרתי פונקציה שמקבלת name & label, labels כאשר name = שם הפוסט-טייפ, label = שם לתצוגה ביחיד, labels = שם לתצוגה ברבים.

    הפונקציה מבצעת קריאה ל register_post_type עם ההגדרות הבסיסיות (אם ישנם Post Types מסויימים עם הגדרות אחרות מהרגיל – הוספתי גם את זה כמערך הגדרות). הפונקציה הזו כתובה ב functions.php היכנשהו, פעם אחת, ובלי קשר יש משהו כזה:

    function create_site_taxonomies[
        create_tax('type', 'Type', 'Types');
        create_tax('prod_tag', 'Product Tag', 'Product Tags');
    }
    
    add_action( 'init', 'create_taxonomies' );

    ומשהו דומה עבור Post Types.

תגובה חדשה

Up!
לבלוג