it-swarm.com.de

Plugin, um Benutzer ohne Administratorrechte auf vorhandene Tags zu beschränken

Gibt es ein Plugin, das Benutzer ohne Administratorrechte nur auf vorhandene Tags beschränkt? Ich hätte Kategorien dafür verwenden können, aber es wird schwierig sein, sie mit einer großen Population (~ 1000) von Tags anzuzeigen.

6
ltfishie

Wenn Sie Ihre Tags noch nicht erstellt haben, können Sie das Plugin "Bulk Add Tags" verwenden. - http://wordpress.org/extend/plugins/bulk-add-tags/

Fügen Sie den folgenden Code zur Datei functions.php Ihres Themes hinzu, um zu verhindern, dass alle Benutzer außer Administratoren neue Tags über den Bildschirm "Neuer Beitrag" hinzufügen:

//Hide Post Page Options from all except Administrator
if (!current_user_can('administrator')){
function hide_post_page_options() {
global $post;
$hide_post_options = "<style type=\"text/css\"> .jaxtag { display: none; }</style>";
print($hide_post_options);
}
add_action( 'admin_head', 'hide_post_page_options'  );
}

Dadurch wird das Feld zum Eingeben neuer Tags für alle Benutzer mit Ausnahme von Administratoren einfach ausgeblendet.

Ich verwende diese Methode, um viele Bereiche der Seite "Neuer Beitrag" auszublenden. Suchen und fügen Sie einfach die div-Klasse oder -ID des Elements vor { display: none; } und durch Kommas getrennt hinzu. Wenn Sie nicht vertraut sind, können Sie das Firebug-Plugin mit Firefox verwenden oder einfach mit der rechten Maustaste klicken und "Inspect Element" in Chrome auswählen.

Ich bevorzuge diese Methode gegenüber vielen Plugins, da sie die Funktionalität von Wordpress nicht vollständig entfernt. Die Funktionalität wird einfach vor Benutzern verborgen, die sie nicht benötigen.

2
Travis Pflanz

Keine dieser Lösungen hat genau das getan, was ich brauchte, um Benutzern ohne Administratorrechte die Verwendung vorhandener Tags in einem Beitrag zu ermöglichen, aber keine neuen Tags zu erstellen. Also habe ich die folgende Lösung erstellt, die hervorragend funktioniert - obwohl sie dem Benutzer kein Feedback gibt, dass seine Tags nicht hinzugefügt wurden (sie macht die Tag-Erstellung wirklich nur sofort rückgängig):

add_action('create_term','undo_create_term',10, 3);

function undo_create_term ($term_id, $tt_id, $taxonomy) {
    if ( !current_user_can( 'administrator' ) )  {
        if($taxonomy == 'post_tag') {
        wp_delete_term($term_id,$taxonomy);
        }
    }
}
5
murdaugh

Ihre Frage hat mich wirklich fasziniert. Ich kann eine enorme Verwendung für diese Situation erkennen und werde alles tun, um Ihnen bei der Suche nach der Antwort zu helfen.

Hier ist eine andere Lösung, nicht genau das, was Sie in Ihrem Kommentar zu der anderen Antwort erwähnt haben. Sie erleichtert es den Benutzern jedoch, die gewünschten Tags zu finden, da die Tags alphabetisch aufgelistet sind.

Plugin zur Verwaltung von Tags - http://wordpress.org/extend/plugins/manage-tags-capability/

Beachten Sie außerdem Folgendes: Mit dieser Methode können Benutzer aus ALLEN verfügbaren Tags auswählen. Ich habe gerade festgestellt, dass die andere Methode nur Benutzern die Auswahl aus den "am häufigsten verwendeten" Tags ermöglicht.

Wordpress führt bereits eine automatische Vorhersage durch, wenn Tags eingegeben werden. Daher müssen wir im Wesentlichen eine Möglichkeit finden, den Benutzern die Eingabe des gewünschten Tags zu ermöglichen. Fügen Sie jedoch kein neues hinzu, wenn sie es nicht finden können.

1
Travis Pflanz

So löse ich das gleiche Problem (in functions.php deines Themas):

/* Removing Tags for users */
if (is_admin()) :
function my_remove_meta_boxes() {
 if(!current_user_can('publish_posts')) { 
   remove_meta_box('tagsdiv-post_tag', 'post', 'normal');
 }
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );
endif;

Zuerst prüfen wir, ob es sich um den Admin-Bereich handelt, dann, ob der Benutzer Beiträge veröffentlichen kann (normalerweise sind es Administratoren und Redakteure), bevor wir mit remove_meta_box zaubern.

0
mayuxi