Er is geen enkele WordPress-plug-in of ingebouwde functionaliteit om inhoud direct te verbergen totdat een gebruiker commentaar geeft. Je hebt een oplossing op maat nodig met een combinatie van PHP en mogelijk JavaScript. De beste aanpak hangt af van hoe geavanceerd u de functionaliteit wilt hebben.
Hier zijn een paar methoden, variërend van de eenvoudigste tot de meest complexe:
Methode 1:eenvoudige aanpak (met behulp van PHP en een cookie) Dit is het gemakkelijkst, maar minder nauwkeurig. Het verbergt de inhoud totdat *elke* opmerking wordt ingediend, niet noodzakelijkerwijs een opmerking van de specifieke gebruiker die de pagina bekijkt.
1. PHP-code (in het `functions.php`-bestand van uw thema of een aangepaste plug-in):
```php
add_action('init', 'set_comment_cookie');
functie set_comment_cookie() {
if ( isset( $_POST['comment'] ) {// Controleer of er een reactie is ingediend
setcookie('commentaar', 'waar', tijd() + 31536000, '/'); // Stel een cookie in die een jaar geldig is
}
}
functie show_content_after_comment() {
if ( isset( $_COOKIE['commentaar gegeven'] ) &&$_COOKIE['commentaar'] =='waar' ) {
echo ' Deze inhoud is zichtbaar nadat een reactie is ingediend.
';
} anders {
echo ' Laat een reactie achter om deze inhoud te zien.
';
}
}
add_shortcode('verborgen_inhoud', 'show_content_after_comment');
?>
```
2. Gebruik: Gebruik in uw pagina-inhoud de shortcode:`[hidden_content]`
Methode 2:meer geavanceerde aanpak (met behulp van PHP, JavaScript en AJAX) Deze methode vereist meer codering, maar biedt een betere gebruikerservaring omdat de pagina niet opnieuw hoeft te worden geladen.
1. PHP-code (in `functions.php` van uw thema of een plug-in):
```php
add_action('wp_ajax_nopriv_check_comment', 'check_comment_ajax'); // Voor niet-ingelogde gebruikers
add_action('wp_ajax_check_comment', 'check_comment_ajax'); // Voor ingelogde gebruikers
functie check_comment_ajax() {
// Controleer of de gebruiker commentaar heeft gegeven (vereist een databasequery of een meer geavanceerde methode om gebruikerscommentaren bij te houden. Zie hieronder).
$user_id =get_current_user_id(); // Haal de huidige gebruikers-ID op
$has_commented =check_if_user_commented($user_id); // Functie om te controleren of de gebruiker commentaar heeft gegeven (hieronder uitgelegd).
als ($ heeft_commentaar gegeven) {
wp_send_json_success(array('show' => true));
} anders {
wp_send_json_success(array('show' => false));
}
wp_die();
}
// Functie om te controleren of een gebruiker commentaar heeft gegeven (vervang door uw werkelijke logica).
functie check_if_user_commented($user_id) {
globaal $wpdb;
$count =$wpdb->get_var( $wpdb->prepare( "SELECTEER AANTAL(*) VAN $wpdb->commentaar WAAR user_id =%d", $user_id ) );
retourneer $telling> 0;
}
?>
```
2. JavaScript-code (in de `header.php` van uw thema of een afzonderlijk `.js`-bestand in uw thema):
```javascript
jQuery(document).ready(functie($) {
var verborgeninhoud =$('#verborgen-inhoud'); // Vervang #hidden-content door de ID van uw verborgen inhoudsdiv
$.ajax({
URL:ajaxurl,
typ:'POST',
gegevens:{
actie:'check_commentaar',
},
succes:functie(antwoord) {
als (antwoord.show) {
verborgeninhoud.show();
}
}
});
});
```
3. HTML-code (in uw pagina-inhoud):
```html
Deze inhoud is zichtbaar nadat een opmerking is ingediend.
```
Belangrijke overwegingen voor methode 2:
* Databasequery: De functie `check_if_user_commented` maakt gebruik van een eenvoudige databasequery om te controleren of de gebruiker opmerkingen heeft. U zult dit waarschijnlijk moeten verfijnen om rekening te houden met goedkeuringen van reacties en andere factoren.
* AJAX-URL: Zorg ervoor dat `ajaxurl` correct is gedefinieerd in uw thema (meestal automatisch afgehandeld door WordPress).
* Beveiliging: Saneer en valideer gebruikersinvoer altijd om beveiligingsproblemen te voorkomen.
* Gebruikerservaring: Overweeg om duidelijke feedback te geven aan de gebruiker terwijl u wacht tot het AJAX-verzoek is voltooid.
Methode 3:Plug-inontwikkeling Voor een robuuste en onderhoudbare oplossing kunt u overwegen een aangepaste WordPress-plug-in te maken. Dit zou meer geavanceerde functies, een betere organisatie van de code en eenvoudigere updates mogelijk maken.
Vergeet niet de tijdelijke ID's te vervangen en de code aan te passen aan uw specifieke thema en behoeften. De tweede methode biedt een veel soepelere gebruikerservaring, maar vereist aanzienlijk meer codeerexpertise. Kies de methode die het beste bij uw vaardigheden en vereisten past. Als je niet vertrouwd bent met PHP en JavaScript, overweeg dan om een ontwikkelaar in te huren. |