it-swarm.com.de

Wie kann verhindert werden, dass einer benutzerdefinierten Taxonomie neue Begriffe hinzugefügt werden?

Ich habe einige benutzerdefinierte Taxonomien mit register_taxonomy erstellt, möchte jedoch verhindern, dass neue Begriffe hinzugefügt werden. Mir ist aufgefallen, dass in register_taxonomy ein Argument für "Capabilities" verfügbar ist. Sollte ich dieses Argument verwenden und wenn ja, wie würde ich es verwenden?

Hier ist ein Teil meines Codes. Ich verwende ein Plugin, das ich erstellt habe, um die Taxonomien hinzuzufügen (daher der öffentliche statische Funktionsteil). Kann ich auf einfache Weise verhindern, dass neue Begriffe für meine Taxonomie erstellt werden?

Vielen Dank

Osu

public static function register_directory_styles_taxonomy()
    {
        $labels = array(
            'name'                      => 'Music styles',
            'singular_name'             => 'Music style',
            'search_items'              => 'Search music styles',
            'all_items'                 => 'All music styles',
            'parent_item'               => 'Parent music style',
            'edit_item'                 => 'Edit music style',
            'update_item'               => 'Update music style',
            'add_new_item'              => 'Add new music style',
            'new_item_name'             => 'New music style',
            'choose_from_most_used'     => 'Choose from most used music styles'
        );

        $args = array(
            'hierarchical'  => true,
            'labels'        => $labels,
            'rewrite'       => false
            // 'show_ui'        => false
        );

        register_taxonomy( 'ibmstyles', 'ibmdirectory', $args );
    }
6
Osu

Sie können das Hinzufügen neuer Begriffe mit einem Filter für pre_insert_term blockieren. Die Quelle ist hilfreich um herauszufinden, was Sie tun können.

add_action( 'pre_insert_term', function ( $term, $taxonomy )
{
    return ( 'yourtax' === $taxonomy )
        ? new WP_Error( 'term_addition_blocked', __( 'You cannot add terms to this taxonomy' ) )
        : $term;
}, 0, 2 );
17
s_ha_dum