it-swarm.com.de

Kann ich Write-In-Tags/Taxonomien deaktivieren?

Eines der großen Probleme, die meine Website-Mitarbeiter mit Tags hatten, ist die überwältigende Anzahl ähnlicher oder doppelter Tags aufgrund der Einschreibefähigkeit.

Ich möchte meiner Website neue benutzerdefinierte Taxonomien hinzufügen, damit sie verwendet werden können, aber ich möchte das Problem vermeiden, das wir mit Tags hatten. Ich bin gespannt, ob ich Eingaben deaktivieren kann, sodass sie nur manuell über den Teil der Taxonomie im Administrationsbereich hinzugefügt werden können. Es ist nicht hierarchisch, so dass sie immer noch eingeben können und das System automatisch vervollständigt und nach Tags sucht, nach denen sie möglicherweise suchen, was großartig ist. Ich möchte nur nicht, dass sie neue Tags über den Post-Bildschirm erstellen können.

Ist das möglich? Ich habe mir die Seiten Taxonomies und register_taxonomy () im Codex angesehen und dachte, vielleicht ist die Funktion "Umschreiben" das, wonach ich suche, aber ich glaube nicht, dass es das jetzt ist.

5
Chris

Folgendes habe ich mir ausgedacht und es scheint zu funktionieren:

add_filter( 'pre_post_tags_input', 'no_tags_input_create' );
add_filter( 'pre_post_tax_input', 'no_tax_input_create' );

function no_tags_input_create($tags_input) {

    $output = array();

    foreach( $tags_input as $tag )
        if( term_exists( $tag, 'post_tag') )
            $output[] = $tag;

    return $output;
}

function no_tax_input_create($tax_input) {

    if( !isset($tax_input['post_tag']) )
        return $tax_input;

    $output = array();
    $tags = explode(',', $tax_input['post_tag']);

    foreach( $tags as $tag )
        if( term_exists( $tag, 'post_tag') )
            $output[] = $tag;

    $tax_input['post_tag'] = implode(',',$output);

    return $tax_input;
}

Dies gilt für Tags. Sie können die zweite Funktion problemlos erweitern, um benutzerdefinierte Taxonomien zu verarbeiten.

6
Rarst