Es gibt kein einzelnes WordPress-Plugin oder integrierte Funktionen, um Inhalte direkt auszublenden, bis ein Benutzer kommentiert. Sie benötigen eine benutzerdefinierte Lösung mit einer Kombination aus PHP und potenziell JavaScript. Der beste Ansatz hängt davon ab, wie hoch entwickelt Sie die Funktionalität haben sollen.
Hier sind einige Methoden, die von einfachsten bis zum komplexsten reichen:
Methode 1:Einfacher Ansatz (mit PHP und einem Cookie) Dies ist das einfachste, aber weniger präzise. Es verbirgt Inhalte, bis * ein Kommentar * eingereicht wurde, nicht unbedingt ein Kommentar aus dem spezifischen Benutzer, der die Seite anzeigt.
1. PHP -Code (in der Datei `functions.php` oder einem benutzerdefinierten Plugin):
`` `php
Php
add_action ('init', 'set_comment_cookie');
Funktion set_comment_cookie () {
if (isset ($ _post ['comment'])) {// prüfe, ob ein Kommentar eingereicht wird
setCookie ('kommentiert', 'true', time () + 31536000, '/'); // Setzen Sie einen Keks, der ein Jahr lang dauert
}
}
Funktion show_content_after_comment () {
if (isset ($ _cookie ['kommentiert']) &&$ _cookie ['kommentiert'] =='true') {
Echo '
Dieser Inhalt ist sichtbar, nachdem ein Kommentar eingereicht wurde.
';
} anders {
Echo '
Bitte hinterlassen Sie einen Kommentar, um diesen Inhalt zu sehen.
';
}
}
add_shortcode ('hidden_content', 'show_content_after_comment');
?>
`` `
2. Verwendung: Verwenden Sie in Ihrem Seiteninhalt den Shortcode:`[Hidden_Content]`
Methode 2:Fortgeschrittenerer Ansatz (mit PHP, JavaScript und Ajax) Diese Methode erfordert mehr Codierung, bietet jedoch eine bessere Benutzererfahrung, da keine Seite neu laden muss.
1. PHP -Code (in den `functions.php` oder einem Plugin Ihres Themas):
`` `php
Php
add_action ('wp_ajax_nopriv_check_comment', 'check_comment_ajax'); // für nicht loggepflegte Benutzer
add_action ('wp_ajax_check_comment', 'check_comment_ajax'); // für protokollierte Benutzer
Funktion check_comment_ajax () {
// Überprüfen Sie, ob der Benutzer kommentiert hat (erfordert eine Datenbankabfrage oder eine ausgefeiltere Methode, um Benutzerkommentare zu verfolgen. Siehe unten).
$ user_id =get_current_user_id (); // Die aktuelle Benutzer -ID abrufen
$ has_compmented =check_if_user_compmented ($ user_id); // Funktion, um zu überprüfen, ob der Benutzer kommentierte (unten erläutert).
if ($ has_commented) {
wp_send_json_success (array ('show' => true));
} anders {
wp_send_json_success (array ('show' => false));
}
wp_die ();
}
// Funktion zum Überprüfen, ob ein Benutzer kommentiert hat (ersetzen Sie durch Ihre tatsächliche Logik).
Funktion check_if_user_commented ($ user_id) {
global $ wpdb;
$ count =$ wpdb-> get_var ($ wpdb-> vorbereiten ("count (*) aus $ wpdb-> Kommentare wobei user_id =%d", $ user_id));
Return $ count> 0;
}
?>
`` `
2.
`` `JavaScript
JQuery (Dokument) .Ready (Funktion ($) {
var hiddencontent =$ ('#verstecktes Content'); // Ersetzen Sie #Hidden-Content durch die ID Ihres versteckten Inhalts Div
$ .ajax ({{{
URL:Ajaxurl,
Typ:'Post',
Daten:{
Aktion:'check_comment',
},
Erfolg:Funktion (Antwort) {
if (response.show) {
hiddencontent.show ();
}
}
});
});
`` `
3. HTML -Code (in Ihrem Seiteninhalt):
`` `html
Dieser Inhalt ist sichtbar, nachdem ein Kommentar eingereicht wurde.
`` `
Wichtige Überlegungen für Methode 2:
* Datenbankabfrage: Die Funktion `check_if_user_commented` verwendet eine einfache Datenbankabfrage, um zu überprüfen, ob der Benutzer Kommentare hat. Sie müssen dies wahrscheinlich verfeinern, um eine Kommentargenehmigung und andere Faktoren zu berücksichtigen.
* Ajax URL: Stellen Sie sicher, dass `ajaxurl` in Ihrem Thema korrekt definiert ist (normalerweise automatisch von WordPress).
* Sicherheit: Die Benutzereingaben immer bereinigen und validieren, um Sicherheitslücken zu verhindern.
* Benutzererfahrung: Erwägen Sie dem Benutzer ein klares Feedback, während Sie auf die AJAX -Anfrage warten.
Methode 3:Plugin -Entwicklung Erstellen Sie für eine robuste und wartbare Lösung ein benutzerdefiniertes WordPress -Plugin. Dies würde fortgeschrittenere Funktionen, bessere Codeorganisationen und einfachere Updates ermöglichen.
Denken Sie daran, Platzhalter -IDs zu ersetzen und den Code so anzupassen, dass er Ihrem spezifischen Thema und Ihren Bedürfnissen entspricht. Die zweite Methode bietet eine viel glattere Benutzererfahrung, erfordert jedoch wesentlich mehr Codierungskompetenz. Wählen Sie die Methode, die Ihren Fähigkeiten und Anforderungen am besten entspricht. Wenn Sie mit PHP und JavaScript nicht vertraut sind, sollten Sie einen Entwickler einstellen.