Last active
August 25, 2018 12:18
-
-
Save jeremygrlj/a9319591e3d1940e9ef465f024220e84 to your computer and use it in GitHub Desktop.
custom post type and the 2 custom taxonomies with custom capabilities
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Plugin Name: Kurse | |
* Plugin URI: - | |
* Description: - | |
* Version: 1.0 | |
* Author: - | |
* Author URI: - | |
*/ | |
// Register Custom Post Type Kurs | |
// Post Type Key: kurs | |
function create_kurs_cpt() { | |
$labels = array( | |
'name' => __( 'Kurse', 'Post Type General Name', 'kurse' ), | |
'singular_name' => __( 'Kurs', 'Post Type Singular Name', 'kurse' ), | |
'menu_name' => __( 'Kurse', 'kurse' ), | |
'name_admin_bar' => __( 'Kurs', 'kurse' ), | |
'archives' => __( 'Kurs Archive', 'kurse' ), | |
'attributes' => __( 'Kurs Attribute', 'kurse' ), | |
'parent_item_colon' => __( 'Eltern Kurs:', 'kurse' ), | |
'all_items' => __( 'Alle Kurse', 'kurse' ), | |
'add_new_item' => __( 'Kurs erstellen', 'kurse' ), | |
'add_new' => __( 'Erstellen', 'kurse' ), | |
'new_item' => __( 'Kurs erstellen', 'kurse' ), | |
'edit_item' => __( 'Bearbeite Kurs', 'kurse' ), | |
'update_item' => __( 'Aktualisiere Kurs', 'kurse' ), | |
'view_item' => __( 'Kurs anschauen', 'kurse' ), | |
'view_items' => __( 'Kurse anschauen', 'kurse' ), | |
'search_items' => __( 'Suche Kurs', 'kurse' ), | |
'not_found' => __( 'Keine Kurse gefunden.', 'kurse' ), | |
'not_found_in_trash' => __( 'Keine Kurse im Papierkorb gefunden.', 'kurse' ), | |
'featured_image' => __( 'Beitragsbild', 'kurse' ), | |
'set_featured_image' => __( 'Beitragsbild festlegen', 'kurse' ), | |
'remove_featured_image' => __( 'Beitragsbild entfernen', 'kurse' ), | |
'use_featured_image' => __( 'Als Beitragsbild verwenden', 'kurse' ), | |
'insert_into_item' => __( 'In Kurs einfügen', 'kurse' ), | |
'uploaded_to_this_item' => __( 'Zu diesem Kurs hochgeladen', 'kurse' ), | |
'items_list' => __( 'Kurse Liste', 'kurse' ), | |
'items_list_navigation' => __( 'Kurse Liste Navigation', 'kurse' ), | |
'filter_items_list' => __( 'Filter Kurse Liste', 'kurse' ), | |
); | |
$args = array( | |
'label' => __( 'Kurs', 'kurse' ), | |
'description' => __( 'Malkurse im In- und Ausland', 'kurse' ), | |
'labels' => $labels, | |
'menu_icon' => 'dashicons-admin-customizer', | |
'supports' => array('title', 'editor', 'excerpt', 'thumbnail', 'revisions', ), | |
'taxonomies' => array('schweiz', 'ausland', ), | |
'public' => true, | |
'show_ui' => true, | |
'show_in_menu' => true, | |
'menu_position' => 5, | |
'show_in_admin_bar' => true, | |
'show_in_nav_menus' => true, | |
'can_export' => true, | |
'has_archive' => false, | |
'hierarchical' => false, | |
'exclude_from_search' => false, | |
'show_in_rest' => true, | |
'publicly_queryable' => true, | |
'capability_type' => 'post', | |
); | |
register_post_type( 'kurs', $args ); | |
} | |
add_action( 'init', 'create_kurs_cpt', 0 ); | |
// Register Taxonomy Standort | |
// Taxonomy Key: standort | |
function create_standort_tax() { | |
$labels = array( | |
'name' => _x( 'Standorte', 'taxonomy general name', 'standort' ), | |
'singular_name' => _x( 'Standort', 'taxonomy singular name', 'standort' ), | |
'search_items' => __( 'Suche Standorte', 'standort' ), | |
'all_items' => __( 'Alle Standorte', 'standort' ), | |
'parent_item' => __( 'Eltern Standort', 'standort' ), | |
'parent_item_colon' => __( 'Eltern Standort:', 'standort' ), | |
'edit_item' => __( 'Bearbeite Standort', 'standort' ), | |
'update_item' => __( 'Aktualisiere Standort', 'standort' ), | |
'add_new_item' => __( 'Standort hinzufügen', 'standort' ), | |
'new_item_name' => __( 'Neuer Standort Name', 'standort' ), | |
'menu_name' => __( 'Standort', 'standort' ), | |
); | |
$args = array( | |
'labels' => $labels, | |
'description' => __( 'Standorte der Malkurse', 'standort' ), | |
'hierarchical' => true, | |
'public' => true, | |
'publicly_queryable' => true, | |
'show_ui' => true, | |
'show_in_menu' => true, | |
'show_in_nav_menus' => true, | |
'show_in_rest' => false, | |
'show_tagcloud' => false, | |
'show_in_quick_edit' => true, | |
'show_admin_column' => true, | |
'capabilities' => array( | |
'manage_terms' => 'manage_location', | |
'edit_terms' => 'edit_location', | |
'delete_terms' => 'delete_location', | |
'assign_terms' => 'assign_location', | |
) | |
); | |
register_taxonomy( 'standort', array('kurs', ), $args ); | |
} | |
add_action( 'init', 'create_standort_tax' ); | |
// Register Taxonomy Typ | |
// Taxonomy Key: typ | |
function create_typ_tax() { | |
$labels = array( | |
'name' => _x( 'Typen', 'taxonomy general name', 'typ' ), | |
'singular_name' => _x( 'Typ', 'taxonomy singular name', 'typ' ), | |
'search_items' => __( 'Suche Typen', 'typ' ), | |
'all_items' => __( 'Alle Typen', 'typ' ), | |
'parent_item' => __( 'Eltern Typ', 'typ' ), | |
'parent_item_colon' => __( 'Eltern Typ:', 'typ' ), | |
'edit_item' => __( 'Bearbeite Typ', 'typ' ), | |
'update_item' => __( 'Aktualisiere Typ', 'typ' ), | |
'add_new_item' => __( 'Typ hinzufügen', 'typ' ), | |
'new_item_name' => __( 'Neuer Typ Name', 'typ' ), | |
'menu_name' => __( 'Typ', 'typ' ), | |
); | |
$args = array( | |
'labels' => $labels, | |
'description' => __( 'Typen der Malkurse', 'typ' ), | |
'hierarchical' => true, | |
'public' => true, | |
'publicly_queryable' => true, | |
'show_ui' => true, | |
'show_in_menu' => true, | |
'show_in_nav_menus' => true, | |
'show_in_rest' => false, | |
'show_tagcloud' => false, | |
'show_in_quick_edit' => true, | |
'show_admin_column' => true, | |
'capabilities' => array( | |
'manage_terms' => 'manage_typ', | |
'edit_terms' => 'edit_typ', | |
'delete_terms' => 'delete_typ', | |
'assign_terms' => 'assign_typ', | |
) | |
); | |
register_taxonomy( 'typ', array('kurs', ), $args ); | |
} | |
add_action( 'init', 'create_typ_tax' ); | |
function kurse_role_caps() { | |
// gets the simple_role role object | |
$role = get_role('administrator'); | |
// add a new capability | |
$role->add_cap( 'manage_location', 'edit_location', 'delete_location', 'assign_location', 'manage_typ', 'edit_typ', 'delete_typ', 'assign_typ', true); | |
} | |
// add simple_role capabilities, priority must be after the initial role definition | |
add_action('init', 'kurse_role_caps', 11); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment