Πώς να χρησιμοποιήσετε γάντζους δράσης WordPress στην προσαρμογή θέμα
Τα θέματα παιδιού WordPress δίνουν έναν σχετικά εύκολο τρόπο για να προσαρμόσετε την εμφάνιση και την αίσθηση ενός θέματος. Εάν οι επιλογές του θέματος δεν σας προσφέρουν επαρκείς επιλογές σχεδίασης, μπορείτε απλά να προσθέσετε έναν νέο κανόνα στο αρχείο προεπιλεγμένου φύλλου στυλ παιδιού που ονομάζεται style.css. Αλλά τι συμβαίνει όταν θέλετε επίσης τροποποιήστε τη λειτουργικότητα του θέματος? Αυτή είναι μια από τις περιπτώσεις που οι ενέργειες WordPress έρχονται στη βοήθειά σας.
Το WordPress έχει γίνει τόσο δημοφιλές εν μέρει λόγω της υψηλής προσαρμοστικότητας του. Ο WordPress Core φορτώνεται με διαφορετικούς γάντζους που επιτρέπουν στους προγραμματιστές να τροποποιήσουν ή να βελτιώσουν την προεπιλεγμένη λειτουργικότητα. Επιπλέον, μας επιτρέπεται να συμπεριλάβουμε προσαρμοσμένα άγκιστρα στα θέματα και τα plugins μας βοηθήστε άλλους προγραμματιστές να προσαρμόσουν εύκολα τον κώδικα μας στις ανάγκες τους.
Σχετικά με τα WordPress Hooks
Οι γάντζοι WordPress λειτουργούν κάπως παρόμοιοι με τους γάντζους της πραγματικής ζωής, υπό την έννοια ότι μπορείτε να πιάσετε τα ψάρια που θέλετε στο σωστό σημείο, αν τα χρησιμοποιείτε σωστά.
Μπορείς αφαιρέστε μια αλιευμένη λειτουργία (π.χ. μπορείτε να καταργήσετε τη γραμμή admin του WordPress για χρήστες χαμηλού επιπέδου), μπορείτε αφήστε το άθικτο και ενισχύστε το με τη δική σας λειτουργικότητα (π.χ. μπορείτε να προσθέσετε περισσότερα μηνύματα ή περιοχές widget σε ένα θέμα) ή μπορείτε αντικαταστήστε το (π.χ. μπορείτε να τροποποιήσετε τη συμπεριφορά μιας βασικής λειτουργίας).
Υπάρχουν δύο διαφορετικά είδη γάντζων στο WordPress: Ενέργειες και φίλτρα. Σε αυτή τη δημοσίευση θα δούμε πώς μπορούμε χρησιμοποιήστε τους γάντζους δράσης στην προσαρμογή των θεμάτων.
Πώς λειτουργεί το WordPress Hooks
Για να χρησιμοποιήσετε μια πολύ απλή γλώσσα, Ενέργειες δείχνουν ότι κάτι συνέβη κατά τη διάρκεια του κύκλου ζωής του WordPress: έχουν φορτωθεί ορισμένα τμήματα του ιστότοπου, έχουν οριστεί ορισμένες επιλογές ή ρυθμίσεις, έχουν αρχικοποιηθεί plugins ή widget κ.ο.κ..
Φίλτρα είναι διαφορετικά από Ενέργειες στη φύση τους. Είναι συνηθισμένοι μεταφέρετε τα δεδομένα μέσω, και να τροποποιήσει, να διαχειριστεί ή συλλαμβάνω εις τον δρόμον πριν μεταβείτε στην οθόνη ή αποθηκεύσετε δεδομένα χρήστη στη βάση δεδομένων.
Σε κάθε σημαντικό ορόσημο του κύκλου ζωής σελίδας WordPress υπάρχει είτε ένα δράση ή α φίλτρο γάντζος στον οποίο μπορούμε προσθέστε τον προσαρμοσμένο κώδικα για να τροποποιήσετε την προεπιλεγμένη συμπεριφορά στις ανάγκες μας.
Οι συγκεκριμένες ενέργειες και τα φίλτρα που εκτελούνται κατά τη διάρκεια ενός αιτήματος εξαρτώνται από τη σελίδα που ζητήθηκε από τον πράκτορα χρήστη: για παράδειγμα, σε ένα μόνο αίτημα δημοσίευσης είναι διαθέσιμα άγκιστρα σχετικά με μεμονωμένες αναρτήσεις, αλλά άγκιστρα που σχετίζονται με άλλα μέρη του ιστότοπου (π.χ. περιοχή διαχειριστή) δεν είναι.
Βρείτε τους γάντζους δράσης
Η αναφορά δράσης του WordPress Codex δίνει μια λεπτομερή επισκόπηση των ενεργειών που εκτελούνται μέσω διαφορετικών αιτημάτων. Το σημαντικό είναι ότι αν θέλουμε να πετύχουμε ένα έργο πρέπει να το κάνουμε γαντζώστε στο σωστό μέρος, όχι πριν ή μετά από αυτήν, διαφορετικά η ενέργεια δεν θα ολοκληρωθεί.
Για παράδειγμα, αν θέλουμε προσθέστε τον κώδικα Google Analytics σε έναν ιστότοπο εμείς πρέπει να γαντζώστε τη δράση μας ακριβώς πριν φορτώσετε το υποσέλιδο.
Αν μιλάμε για προσαρμογή θεμάτων, οι γάντζοι δράσης μπορούν να προέλθουν από δύο διαφορετικά μέρη: από WordPress Core και το ίδιο το θέμα. Υπάρχουν θέματα που δεν έχουν άγκιστρα καθόλου, αλλά άλλοι παρέχουν προγραμματιστές με μερικούς ή πολλούς - είναι πάντα η επιλογή του δημιουργού του θέματος. Το προεπιλεγμένο Είκοσι Δεκαπέντε Θέμα έχει μόνο ένα γάντζο δράσης για προσαρμογή υποσημειώσεων με το όνομα 'twentyfifteen_credits'.
Εάν θέλετε να περιηγηθείτε στον πηγαίο κώδικα, μπορείτε επίσης να βρείτε γάντζους δράσης εύκολα. Οι αγκίστρες ενέργειας προστίθενται στον κώδικα με τη λειτουργία do_action () WordPress.
Εάν εκτελέσετε μια γρήγορη αναζήτηση για την έκφραση 'do_action' σε έναν πιο προηγμένο επεξεργαστή κώδικα - όπως έκανα και στο Eclipse παρακάτω - μπορείτε να δείτε μια λίστα με τα σημεία όπου μπορείτε να συνδέσετε την προσαρμοσμένη λειτουργικότητα στον πυρήνα. Έψαξα στο / wp-περιλαμβάνει / φάκελο, αλλά μπορείτε επίσης να εκτελέσετε μια αναζήτηση για το / wp-admin / φάκελο που περιέχει τους γάντζους δράσης που σχετίζονται με τον πίνακα ελέγχου του WordPress (περιοχή διαχειριστή).
Το καλό είναι ότι τα ονόματα των αγκίστρων δράσης συνήθως είναι αρκετά αυτονόητα, αλλά υπάρχει συνήθως ένα ωραίο σχόλιο μέσα στον κώδικα που μπορεί να σας δώσει περισσότερες γνώσεις εάν το συγκεκριμένο γάντζο δράσης είναι καλό για το λόγο για τον οποίο θέλετε να το χρησιμοποιήσετε.
Για παράδειγμα, το σχόλιο του κώδικα πριν από το γάντζο δράσης 'widgets_init' το λέει αυτό “πυρκαγιές μετά την καταχώρηση όλων των προκαθορισμένων γραφικών του WordPress”. Αν κοιτάξετε τον κώδικα πριν από αυτό το άγκιστρο δράσης, μπορείτε να βρείτε όλες τις προκαθορισμένες προετοιμασίες widgets WP πριν από αυτό - για να είστε βέβαιοι ότι το σχόλιο δεν βρίσκεται και αν θέλετε να καταχωρίσετε το δικό σας προσαρμοσμένο widget, αυτό θα είναι το σωστό σημείο.
Σε πολλές περιπτώσεις ο πηγαίος κώδικας μας παρέχει πολύ περισσότερες πληροφορίες από τον Κώδικα, οπότε μπορεί να είναι καλή ιδέα να μάθετε πώς να περιηγείστε γρήγορα σε αυτόν.
Προσθέστε τις δικές σας ενέργειες
Όταν θέλετε να προσθέσετε τη δική σας ενέργεια, πρέπει να κάνετε δημιουργήστε μια προσαρμοσμένη λειτουργία και συνδέστε αυτή τη λειτουργία σε ένα συγκεκριμένο γάντζο δράσης χρησιμοποιώντας τη λειτουργία add_action () WordPress. Οι προσαρμοσμένες ενέργειες που προστέθηκαν με τη συνάρτηση add_action () είναι συνήθως επιτόπου όταν ο πυρήνας καλεί την κατάλληλη λειτουργία do_action ().
Ας δούμε ένα απλό παράδειγμα.
Πώς να βρείτε το γάντζο δράσης που χρειάζεστε
Ας υποθέσουμε ότι θέλετε να προσθέσετε το αγαπημένο σας favicon στον ιστότοπό σας. Πρώτον, πρέπει να βρείτε το σωστό γάντζο δράσης που μπορείτε να συνδέσετε τη δική σας λειτουργικότητα.
Ας σκεφτούμε. Αν θέλετε να προσθέσετε ένα favicon σε μια απλή σελίδα HTML όπου θα το βάλετε; Φυσικά, πρέπει να το τοποθετήσετε μέσα στο
τμήμα του αρχείου HTML με την ακόλουθη σήμανση:Έτσι το γάντζο δράσης που χρειάζεστε πρέπει να είναι σχετικά με τη φόρτωση του Ενότητα.
(1) Ανοίξτε την αναφορά δράσης και δείτε τι μπορεί να προσφέρει. Είμαστε τυχεροί, σαν να περιηγούμε στις ενέργειες, μπορούμε μόνο να βρούμε ένα, wp_head, το οποίο με βάση το όνομά του έχει τη δυνατότητα να σχετίζεται με τη φόρτωση του
Ενότητα.(2) Για να είμαστε σίγουροι, ας είναι ελέγξτε την τεκμηρίωση στον Κώδικα WordPress. Ο κώδικας συμβουλεύει αυτό “χρησιμοποιείτε αυτό το άγκιστρο έχοντας την έξοδο σας λειτουργία εξόδου στο πρόγραμμα περιήγησης”, έτσι τώρα φαίνεται να είναι ιδανικό για εμάς. Αλλά ας το ελέγξουμε στον πηγαίο κώδικα.
(3) Καθώς αυτός ο γάντζος δεν σχετίζεται με την περιοχή διαχείρισης, θα χρειαστεί να εκτελέσετε την αναζήτησή μας στο / wp-περιλαμβάνει / ντοσιέ. Αν ψάξουμε για τη λέξη 'wp-head' θα έχουμε πολλά αποτελέσματα καθώς αυτή η συγκεκριμένη ενέργεια χρησιμοποιείται από το WP Core πολλές φορές.
Πρέπει να αναζητήσουμε το σημείο όπου καθορίζεται, οπότε αναζητήστε την έκφραση do_action ('wp_head'. Σημειώστε ότι δεν ολοκληρώσαμε τις παρενθέσεις, καθώς δεν μπορούμε να είμαστε σίγουροι αν η ενέργεια αυτή έχει παραμέτρους ή όχι.
Το Eclipse επιστρέφει μόνο ένα αποτέλεσμα που μπορεί να βρεθεί μέσα στο /wp-includes/general-template.php αρχείο. Το σχόλιο πριν από τον ορισμό του αγκίστρου δράσης το λέει αυτό “εκτυπώνει δέσμες ενεργειών ή δεδομένα στην ετικέτα κεφαλής στο μπροστινό μέρος”, έτσι τώρα μπορούμε να είμαστε νεκροί-σίγουροι ότι wp_head είναι ο γάντζος δράσης που χρειαζόμαστε.
Έλεγχος για παραμέτρους
Όταν προσθέτετε τις δικές σας ενέργειες πρέπει επίσης να είστε σίγουροι αν ο άγκιστρο που θέλετε να χρησιμοποιήσετε παίρνει παραμέτρους ή όχι. Μπορείτε εύκολα να το βρείτε ανατρέχοντας στη λειτουργία do_action ().
Η σύνταξη της λειτουργίας do_action () είναι η εξής:
do_action ('name_of_action' [, $ παράμετρος1, $ παράμετρος2, ...])
Απαιτείται μόνο το όνομα της ενέργειας, οι παράμετροι είναι προαιρετικές. Αν βρείτε επιχειρήματα στη σχετική κλήση της λειτουργίας do_action (), πρέπει να το κάνετε συμπεριλάβετε τους στη δήλωση της προσαρμοσμένης λειτουργίας που δημιουργείτε.
Εάν δεν βρίσκετε κανέναν, τότε η συνήθης λειτουργία σας πρέπει να λειτουργεί χωρίς επιχειρήματα. Στο ορισμό του do_action () του γάντζου δράσης wp_head, δεν υπάρχουν παράμετροι.
Ας το συγκρίνουμε με ένα γάντζο δράσης που παίρνει μια παράμετρο. Ο γάντζος δράσης που ονομάζεται 'wp_register_sidebar_widget' παίρνει μια παράμετρο που πάντα πρέπει να περάσετε στην προσαρμοσμένη λειτουργία που δεσμεύετε στο άγκιστρο.
Ας δούμε τη διαφορά στη σύνταξη do_action () των δύο περιπτώσεων:
do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ widget).
Στην πρώτη περίπτωση δεν υπάρχει παράμετρος, επομένως η προσαρμοσμένη συνάρτηση θα χρησιμοποιεί την ακόλουθη σύνταξη:
λειτουργία my_function_without_parameters () ...
Στη δεύτερη περίπτωση υπάρχει μια παράμετρος που πάντα πρέπει να περάσετε ως επιχείρημα στη δήλωση της προσαρμοσμένης λειτουργίας σας:
λειτουργία my_function_with_parameters ($ widget) ...
Πώς να αγκιστρώσετε τη συνήθη λειτουργία σας στο
Τώρα γνωρίζουμε ό, τι χρειαζόμαστε. Ας δημιουργήσουμε τη συνήθη λειτουργία μας που θα εμφανίζει ένα favicon στον ιστότοπό μας.
Κατ 'αρχάς, δημιουργήστε μια νέα συνάρτηση χωρίς οποιαδήποτε επιχειρήματα και, στη συνέχεια, συνδέστε το στο άγκιστρο δράσης wp_head με τη βοήθεια της λειτουργίας add_action () WordPress.
συνάρτηση custom_add_favicon () echo '' add_action ('wp_head', 'custom_add_favicon').
Πρέπει να το κάνετε περάστε το όνομα του γάντζου δράσης στη συνάρτηση add_action () ως επιχείρημα πρώτα, τότε πρέπει να προσθέστε το όνομα της προσαρμοσμένης λειτουργίας σας.
Αυτές είναι οι δύο απαιτούμενες παράμετροι του add_action (). Έχει επίσης δύο προαιρετικές παραμέτρους, προτεραιότητα και αποδεκτά επιχειρήματα. Ας δούμε πώς να τις χρησιμοποιήσουμε.
Ορισμός προτεραιοτήτων
Σε πολλές περιπτώσεις συμβαίνει ότι υπάρχουν περισσότερες από μία πράξεις που συνδέονται με τον ίδιο γάντζο. Έτσι που θα εκτελεστεί πρώτα? Αυτό είναι όπου μπορούμε να χρησιμοποιήσουμε το Προαιρετική παράμετρο προτεραιότητας $ της συνάρτησης add_action ().
Προσθέτουμε την προτεραιότητα ως θετικό ακέραιο, η προεπιλεγμένη τιμή είναι 10. Εάν θέλουμε μια ενέργεια να εκτελεστεί νωρίς, δίνουμε σε αυτήν μια χαμηλότερη αξία, αν θέλουμε να εκτελεστεί αργότερα, δίνουμε σε αυτήν μια υψηλότερη τιμή.
Αν λοιπόν πιστεύουμε ότι το favicon πρέπει να βρίσκεται εκεί νωρίς, μπορούμε να ενισχύσουμε την προηγούμενη κλήση add_action () με τον ακόλουθο τρόπο:
add_action ('wp_head', 'custom_add_favicon', 5).
Λάβετε υπόψη ότι οι προτεραιότητες πρέπει πάντα να είναι ορίστηκε σε σχέση με τις άλλες προσαρμοσμένες λειτουργίες που χρησιμοποιούν τον ίδιο γάντζο δράσης.
Προσθέστε τον αριθμό αποδεκτών επιχειρημάτων
Απαιτείται να προσθέσετε τον αριθμό αποδεκτών επιχειρημάτων σε περίπτωση που χρησιμοποιείτε ένα γάντζο δράσης που παίρνει παραμέτρους. Ας δούμε το παράδειγμα που χρησιμοποιήσαμε πριν.
Ο γάντζος δράσης 'wp_register_sidebar_widget' παίρνει μια παράμετρο, οπότε όταν συνδέουμε την προσαρμοσμένη συνάρτηση με αυτό το άγκιστρο, πρέπει επίσης να το συμπεριλάβουμε ως όρισμα όταν καλούμε τη συνάρτηση add_action ().
Ο κώδικας μας σε αυτή την περίπτωση θα μοιάζει με αυτό:
λειτουργία my_sidebar_widget_function ($ widget) // Ο κωδικός σας add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1);
Σημειώστε ότι πρέπει προσθέστε επίσης την προτεραιότητα (επιλέξαμε την προεπιλεγμένη τιμή 10 εδώ) για να βεβαιωθείτε ότι το WordPress γνωρίζει τι σημαίνει κάθε παράμετρος. Εάν παραλείψουμε την προτεραιότητα, το WordPress θα μπορούσε να υποθέσει ότι το 1 είναι η προτεραιότητα πράγμα που δεν είναι αληθές, καθώς δείχνει τον αριθμό των αποδεκτών επιχειρημάτων.
συμπέρασμα
Μπορείτε να κάνετε πολλά πειράματα με γάντζους δράσης στην προσαρμογή θεμάτων. Για παράδειγμα, μπορείτε να προσθέσετε τα προσαρμοσμένα σενάρια (JS) και τα στυλ (CSS) με το άγκιστρο δράσης wp_enqueue_scripts ή τον κώδικα Google Analytics με το άγκιστρο δράσης wp_footer.
Εσείς όχι μόνο μπορείτε προσθέστε τις δικές σας ενέργειες, αλλά μπορείτε επίσης καταργήστε τις πλήρεις λειτουργίες από τον πυρήνα του WordPress με τη χρήση της συνάρτησης remove_action () που χρησιμοποιεί την ίδια λογική με την add_action ().
Εάν είστε συγγραφέας θεμάτων και θέλετε να κάνετε ένα εύχρηστο θέμα, μπορεί να είναι καλή ιδέα προσθέστε τους δικούς σας προσαρμοσμένους γάντζους δράσης στα κατάλληλα αρχεία προτύπων με τη συνάρτηση do_action ().
Αν θέλετε να το κάνετε, σκεφτείτε προσεκτικά τις παραμέτρους που έχουν οι άλλοι προγραμματιστές ποιος θα χρησιμοποιήσει το θέμα σας θα πρέπει να περάσει ως επιχειρήματα όταν θέλουν να συνδέσουν τις προσαρμοσμένες λειτουργικότητες τους.
Ενώ σχεδιάζετε τις θέσεις των αγκιστριών δράσης της επιλογής σας, μην το ξεχνάτε δεν έχει νόημα να συμπεριλάβετε προσαρμοσμένους γάντζους θεμάτων στα ίδια σημεία όπου ο ίδιος ο WordPress Core έχει τα δικά του γάντζους.