Support » Allgemeine Fragen » User Kommentar verbieten

  • Gelöst elli74

    (@elli74)


    Hei!

    Ich weiß, dass man die Kommentarfunktion vollständig an- und ausschalten kann.
    Ich möchte aber gerne einzelnen Usern das Kommentieren verbieten.

    Geht das über individuelle User-Rollen?
    Kann mir jemand helfen?
    Vielleicht nur mit einem Link, den ich nicht finden konnte …

    Vielen Dank!

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Hallo @elli74 und willkommen im Forum,

    möglich ist das, aber nicht mit den vorgegebenen Mitteln (Einstellungsoptionen in WordPress ohne zusätzliche Plugins) und soviel ich weiß, gibt es auch keine fertige Lösung in Form eines Plugins.

    Es gibt verschiedene Lösungsansätze. Zur Ermittlung „wer darf“ kannst du entweder eine neue Rolle „Abonnent ohne Kommentarfunktion“ oder ein neues User-Meta-Feld „darf kommentieren“ hinzufügen, dass beim Ausgabe der Website abgefragt wird und wahlweise das Kommentarfeld oder einen Hinweis „Kommentare sind geschlossen“ anzeigt.

    Dazu kann in einem eigenen Plugin ein Hook verwendet werden, der z.B. die Benutzerrolle abruft und entweder das Kommentarformular nicht ausgibt, wenn die Rolle „Abonnent ohne Kommentarfunktion“ verwendet wird oder „Kommentare sind geschlossen“ oder „Du musst angemeldet sein, um kommentieren zu können“ ausgibt, wobei das eher irreführend ist („ich war doch angemeldet?“, „da sind aber noch Kommentare erschienen?“).

    Du kannst auch in einem Child Theme die Kommentar-Funktion so ergänzen, dass der Benutzerrolle „Abonnent ohne Kommentarfunktion“ angezeigt wird „Kommentare sind einer limitierten Anzahl Nutzern vorbehalten“. Also sinngemäß …

    //functions.php
    // source: https://catapultthemes.com/get-current-user-role-in-wordpress/
    function restrictly_get_current_user_role() {
      if( is_user_logged_in() ) {
        $user = wp_get_current_user();
        $role = ( array ) $user->roles;
        return $role[0];
      } else {
        return false;
      }
     }
    
    // im Template des Child Theme
    if( 'subscriber_no_comment' != restrictly_get_current_user_role() ) { 
      comments_template();
    }

    Ich möchte aber gerne einzelnen Usern das Kommentieren verbieten.

    Du kannst die E-Mail-Adresse des Kommentators unter Einstellungen > Diskussion in die Blacklist eintragen, dann landet der Kommentar immer in der Moderation. Das wäre sogar eine Lösung, die mit Core-Mitteln umzusetzen wäre.

    Oder übersehe ich was @pixolin ?

    Gruß, Torsten

    @zodiac1978 Völlig korrekt, auf diese Lösung bin ich einfach nicht gekommen.
    Sorry @elli74 für die Fehlinformation, Torstens Vorschlag sollte bestens passen.

    Es ist ja mehr ein Workaround. Das Kommentieren wird ja nicht wirklich unterbunden. Finde deine Variante besser, wenn wirklich gar nicht kommentiert werden soll.

    Gruß, Torsten

    Thread-Starter elli74

    (@elli74)

    Lieben Dank an alle!

    Ich habe es gerade ausprobiert und wie es scheint, funktioniert Torstens Vorschlag hervorragend. Folgende Anmerkungen habe ich dazu noch:

    1. Die Kommentar-Blacklist muss mit einzelnen Zeilen gefüllt werden. Jede Zeile mit nur einem Wort (in meinem Fall einer E-Mail)!!! Sonst funktioniert es nicht.

    2. Der User, der den Kommentar abschickt, erhält keinerlei Nachricht. Nach Eingabe des Kommentars wird die selbe Seite ohne Änderung und Hinweis geladen.

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Das Thema „User Kommentar verbieten“ ist für neue Antworten geschlossen.