λογισμικό

Γνώση Υπολογιστών >> λογισμικό >  >> WordPress

Απόκρυψη κάποιου περιεχομένου έως ότου τα σχόλια των χρηστών στο WordPress;

Δεν υπάρχει ενιαίο plugin WordPress ή ενσωματωμένη λειτουργικότητα για να αποκρύψετε άμεσα το περιεχόμενο μέχρι να σχολιάσει ένας χρήστης. Θα χρειαστείτε μια προσαρμοσμένη λύση που περιλαμβάνει ένα συνδυασμό PHP και ενδεχομένως JavaScript. Η καλύτερη προσέγγιση εξαρτάται από το πόσο εξελιγμένο θέλετε να είναι η λειτουργικότητα.

Ακολουθούν μερικές μεθόδους, που κυμαίνονται από απλούστερη έως πιο περίπλοκη:

Μέθοδος 1:Απλή προσέγγιση (χρησιμοποιώντας PHP και ένα cookie) Αυτό είναι το πιο εύκολο, αλλά λιγότερο ακριβές. Κρύβει το περιεχόμενο μέχρι να υποβληθεί οποιοδήποτε * σχόλιο, όχι απαραίτητα ένα σχόλιο από τον συγκεκριμένο χρήστη που βλέπει τη σελίδα.

1.

`` `php

add_action ('init', 'set_comment_cookie');

λειτουργία set_comment_cookie () {

αν (isset ($ _post ['comment'])) {// Ελέγξτε εάν υποβληθεί ένα σχόλιο

setCookie ('σχολίασε', 'true', time () + 31536000, '/'); // Ρυθμίστε ένα cookie που διαρκεί για ένα έτος

}

}

Λειτουργία show_content_after_comment () {

αν (ISSET ($ _COOKIE ['σχολιάστηκε']) &&$ _COOKIE ['σχολιάστηκε'] =='true') {

echo '

Αυτό το περιεχόμενο είναι ορατό μετά την υποβολή ενός σχολίου.
';

} αλλιώς {

echo '

Αφήστε ένα σχόλιο για να δείτε αυτό το περιεχόμενο.
';

}

}

add_shortCode ('hidden_content', 'show_content_after_comment');

>>

`` `

2. Χρήση: Στο περιεχόμενο της σελίδας σας, χρησιμοποιήστε το shortcode:`[hidden_content]`

Μέθοδος 2:πιο προηγμένη προσέγγιση (χρησιμοποιώντας PHP, JavaScript και Ajax) Αυτή η μέθοδος απαιτεί περισσότερη κωδικοποίηση, αλλά προσφέρει καλύτερη εμπειρία χρήστη, καθώς δεν απαιτεί επαναφόρτωση σελίδας.

1.

`` `php

add_action ('wp_ajax_nopriv_check_comment', 'check_comment_ajax'); // για χρήστες που δεν είναι logged-in

add_action ('wp_ajax_check_comment', 'check_comment_ajax'); // για τους καταγεγραμμένους χρήστες

Λειτουργία check_comment_ajax () {

// Ελέγξτε εάν ο χρήστης έχει σχολιάσει (απαιτεί ένα ερώτημα βάσης δεδομένων ή μια πιο εξελιγμένη μέθοδο για την παρακολούθηση των σχολίων των χρηστών. Δείτε παρακάτω).

$ user_id =get_current_user_id (); // Λάβετε τρέχον αναγνωριστικό χρήστη

$ HAS_COMMENTED =check_if_user_commented ($ user_id); // λειτουργία για να ελέγξετε αν ο χρήστης σχολίασε (εξηγείται παρακάτω).

αν ($ HAS_COMMENTED) {

WP_SEND_JSON_SUCCESS (Array ('show' => true));

} αλλιώς {

WP_SEND_JSON_SUCCESS (Array ('show' => false));

}

WP_DIE ();

}

// λειτουργία για να ελέγξετε εάν ένας χρήστης έχει σχολιάσει (αντικαταστήστε με την πραγματική λογική σας).

Λειτουργία check_if_user_commented ($ user_id) {

Global $ WPDB;

$ count =$ wpdb-> get_var ($ wpdb-> prepare ("επιλέξτε count (*) από $ wpdb-> σχόλια όπου user_id =%d", $ user_id));

επιστροφή $ count> 0;

}

>>

`` `

2.

`` `javascript

jQuery (έγγραφο) .ready (λειτουργία ($) {

var hiddencontent =$ ('#hidden-content'); // Αντικαταστήστε το #Hidden-Content με το αναγνωριστικό του κρυμμένου περιεχομένου σας Div

$ .AJAX ({

URL:Ajaxurl,

Τύπος:'post',

Δεδομένα:{

Δράση:'check_comment',

},

Επιτυχία:Λειτουργία (απάντηση) {

αν (response.show) {

hiddencontent.show ();

}

}

});

});

`` `

3. κωδικός HTML (στο περιεχόμενο της σελίδας σας):

`` html

`` `

Σημαντικές εκτιμήσεις για τη μέθοδο 2:

* Ερώτηση βάσης δεδομένων: Η λειτουργία `check_if_user_commented` χρησιμοποιεί ένα απλό ερώτημα βάσης δεδομένων για να ελέγξει αν ο χρήστης έχει σχόλια. Πιθανότατα θα χρειαστεί να βελτιώσετε αυτό για να λάβετε υπόψη τις εγκρίσεις σχολίων και άλλους παράγοντες.

* ajax url: Βεβαιωθείτε ότι το `ajaxurl` ορίζεται σωστά στο θέμα σας (συνήθως χειρίζεται αυτόματα από το WordPress).

* Ασφάλεια: Πάντα να απολυθείτε και να επικυρώνετε την είσοδο του χρήστη για την πρόληψη των τρωτών σημείων ασφαλείας.

* Εμπειρία χρήστη: Εξετάστε το ενδεχόμενο να δώσετε σαφή ανατροφοδότηση στον χρήστη ενώ περιμένετε να ολοκληρωθεί το αίτημα AJAX.

Μέθοδος 3:Ανάπτυξη plugin Για μια ισχυρή και διατηρήσιμη λύση, σκεφτείτε να δημιουργήσετε ένα προσαρμοσμένο plugin WordPress. Αυτό θα επέτρεπε πιο προηγμένες λειτουργίες, καλύτερη οργάνωση κώδικα και ευκολότερες ενημερώσεις.

Θυμηθείτε να αντικαταστήσετε τα αναγνωριστικά κράτησης θέσης και να ρυθμίσετε τον κώδικα ώστε να ταιριάζει με το συγκεκριμένο θέμα και τις ανάγκες σας. Η δεύτερη μέθοδος παρέχει μια πολύ ομαλότερη εμπειρία χρήστη, αλλά απαιτεί σημαντικά περισσότερη εμπειρογνωμοσύνη κωδικοποίησης. Επιλέξτε τη μέθοδο που ταιριάζει καλύτερα στις ικανότητές σας και τις απαιτήσεις σας. Εάν δεν είστε άνετοι με το PHP και το JavaScript, σκεφτείτε να προσλάβετε έναν προγραμματιστή.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα