Det finns ingen enda WordPress-plugin eller inbyggd funktionalitet för att direkt dölja innehåll tills en användare kommenterar. Du behöver en anpassad lösning som involverar en kombination av PHP och potentiellt JavaScript. Det bästa tillvägagångssättet beror på hur sofistikerad du vill att funktionaliteten ska vara.
Här är några metoder, allt från enklaste till mest komplexa:
Metod 1:Enkel tillvägagångssätt (med PHP och en cookie) Detta är det enklaste, men mindre exakt. Den döljer innehåll tills * någon * kommentar har skickats in, inte nödvändigtvis en kommentar från den specifika användaren som tittar på sidan.
1. php -kod (i ditt temas "Functions.php" -fil eller en anpassad plugin):
`` `php
php
add_action ('init', 'set_comment_cookie');
funktion set_comment_cookie () {
if (isset ($ _post ['kommentar'])) {// Kontrollera om en kommentar skickas in
setCookie ('kommenterad', 'sant', tid () + 31536000, '/'); // Ställ in en kaka som varar i ett år
}
}
funktionshow_content_after_comment () {
if (isset ($ _cookie ['kommenterade']) &&$ _cookie ['kommenterade'] =='true') {
echo '
Detta innehåll är synligt efter att en kommentar har skickats in.
';
} annat {
echo '
vänligen lämna en kommentar för att se detta innehåll.
';
}
}
add_shortcode ('Hidden_Content', 'show_content_after_comment');
?>
`` `
2. Användning: I ditt sidinnehåll använder du kortkoden:`[Hidden_Content]`
Metod 2:Mer avancerad strategi (med PHP, JavaScript och Ajax) Den här metoden kräver mer kodning men erbjuder en bättre användarupplevelse eftersom den inte kräver en sida omladdning.
1. php -kod (i ditt temas `funktioner.php` eller ett plugin):
`` `php
php
add_action ('wp_ajax_nopriv_check_comment', 'check_comment_ajax'); // för icke-inloggade användare
add_action ('wp_ajax_check_comment', 'check_comment_ajax'); // för inloggade användare
funktion check_comment_ajax () {
// Kontrollera om användaren har kommenterat (kräver en databasfråga eller en mer sofistikerad metod för att spåra användarkommentarer. Se nedan).
$ user_id =get_current_user_id (); // Få aktuellt användar -ID
$ HAS_COMMENTED =CHECK_IF_USER_COMMENTED ($ user_id); // Funktion för att kontrollera om användaren kommenterade (förklaras nedan).
if ($ has_commenterad) {
wp_send_json_success (array ('show' => true));
} annat {
wp_send_json_success (array ('show' => falsk));
}
wp_die ();
}
// funktion för att kontrollera om en användare har kommenterat (ersätt med din faktiska logik).
funktion check_if_user_comented ($ user_id) {
Global $ WPDB;
$ count =$ wpdb-> get_var ($ wpdb-> förbereda ("Välj räkning (*) från $ wpdb-> kommentarer där user_id =%d", $ user_id));
returnera $ räkning> 0;
}
?>
`` `
2. javascript -kod (i ditt temas `header.php` eller en separat` .js` -fil som är enqueed i ditt tema):
`` `JavaScript
jQuery (dokument) .Ready (funktion ($) {
var HiddenContent =$ ('#dold-content'); // Byt ut #dold-innehåll med ID för ditt dolda innehåll Div
$ .ajax ({
URL:Ajaxurl,
Typ:'Post',
Data:{
Åtgärd:'check_comment',
},
Framgång:funktion (svar) {
if (svar.show) {
hiddencontent.show ();
}
}
});
});
`` `
3. html -kod (i ditt sidinnehåll):
`` `html
Detta innehåll är synligt efter att en kommentar har lämnats in.
`` `
Viktiga överväganden för metod 2:
* databasfrågan: Funktionen `CHECK_IF_USER_COMMENTED` använder en enkel databasfråga för att kontrollera om användaren har några kommentarer. Du kommer sannolikt att behöva förfina detta för att redogöra för kommentarernas godkännanden och andra faktorer.
* ajax url: Se till att `Ajaxurl 'är korrekt definierad i ditt tema (hanteras vanligtvis automatiskt av WordPress).
* Säkerhet: Rengör och validerar alltid användarinmatning för att förhindra säkerhetssårbarheter.
* Användarupplevelse: Överväg att ge tydlig feedback till användaren medan du väntar på att AJAX -begäran ska slutföras.
Metod 3:Plugin Development För en robust och underhållbar lösning kan du överväga att skapa ett anpassat WordPress -plugin. Detta skulle möjliggöra mer avancerade funktioner, bättre kodorganisation och enklare uppdateringar.
Kom ihåg att ersätta PlaceHolder -ID och justera koden så att du matchar ditt specifika tema och behov. Den andra metoden ger en mycket smidigare användarupplevelse, men kräver betydligt mer kodningskompetens. Välj den metod som bäst passar dina färdigheter och krav. Om du inte är bekväm med PHP och JavaScript kan du överväga att anställa en utvecklare.