Οδηγός αρχαρίων για την ανάπτυξη του WordPress Plugin
Το WordPress CMS έχει αλλάξει το πρόσωπο του Διαδικτύου μας και επέτρεψε την εμφάνιση νέων ιδεών για να ευημερήσει και το κίνημα του ανοιχτού κώδικα έχει ισχυρή παρουσία με ρίζες στην ανάπτυξη λογισμικού και ιστού. Το WordPress είναι μια πλατφόρμα blogging που έχει τη δυνατότητα να ξεκινήσει σε πολλά άλλα σενάρια, όπως φόρουμ στο διαδίκτυο, πίνακες εργασίας, ακόμη και ένα κλασικό σύστημα διαχείρισης περιεχομένου ιστοσελίδας.
Θα ξεπεράσουμε μερικούς τρόπους για να ξεκινήσετε την ανάπτυξη plug-ins για το WordPress. Τα βήματα είναι αρκετά απλά και δεν απαιτούν μεγάλη αφοσίωση στη μελέτη. Η εξωσχολική γνώση της PHP θα ήταν χρήσιμη ακόμη και με μια βασική κατανόηση της δομής του αρχείου WordPress και του πίνακα διαχείρισης.
Σε αυτό το σύντομο σεμινάριο θα ξεπεράσουμε τα βασικά βήματα που απαιτούνται για τη δημιουργία ενός απλού plug-in WordPress. Η λειτουργία θα χρησιμοποιηθεί για τη δημιουργία δυναμικών αποσπασμάτων με βάση τον αριθμό που πέρασε στην κλήση λειτουργίας μας. Θα χρειαστεί να μεταφορτώσετε το αρχείο plug-in και να το ενεργοποιήσετε από τον πίνακα διαχειριστή και στη συνέχεια να ακολουθήσετε καλώντας τη λειτουργία μας από οποιεσδήποτε σελίδες θέλουμε να εμφανιστεί το απόσπασμα. Οι συνδέσεις με τον ολοκληρωμένο πηγαίο κώδικα plug-in έχουν ήδη προστεθεί αργότερα σε αυτό το άρθρο :)
Γιατί να αναπτυχθεί για το WordPress?
Οι προσθήκες είναι ένας πολύ καλός τρόπος για να βελτιώσετε τη λειτουργικότητα του ιστολογίου σας προσθέτοντας επιπλέον λειτουργίες. Αυτά μπορούν να τοποθετηθούν οπουδήποτε μέσα στο πρότυπό σας με άγκιστρα λειτουργίας. Με την πάροδο του χρόνου η επεκτασιμότητα του συστήματος plug-in του WordPress επέτρεψε την τεράστια ανάπτυξη και εκατοντάδες κομμάτια λογισμικού που υπέβαλαν προγραμματιστές.
Το WordPress προσφέρει ειδικά τέτοια προηγμένα χαρακτηριστικά στο CMS ότι οι μοναδικές προσθήκες είναι λίγες και απέχουν μεταξύ τους. Ως προγραμματιστής έχετε πλήρη έλεγχο των ειδικών χαρακτηριστικών του ιστοτόπου σας. Η πρόσληψη ενός προγραμματιστή PHP για τη δημιουργία ενός plugin συστήματος θα κοστίσει πολύ περισσότερο από ό, τι μπορεί να φανταστείτε και το API είναι αρκετά εύκολο για να εργαστείτε και να μάθετε τον εαυτό σας.
Ως δευτερεύον επιχείρημα, η ανάπτυξη πάνω από το WordPress είναι μεγάλη πρακτική για τον συντονισμό σε άλλους τομείς. Η δημιουργία μικρότερων προσθηκών και γραφικών στοιχείων στο WordPress θα σας βοηθήσει να αναπτύξετε μια κατανόηση του πώς λειτουργεί πραγματικά το σύστημα backend. Αυτό δεν περιορίζεται μόνο στο WordPress καθώς θα αποκτήσετε μια βαθύτερη κατανόηση της συντριπτικής πλειοψηφίας των Συστημάτων Περιεχομένου.
1. Δομή φακέλου WP
Μια εισαγωγή στη δομή του φακέλου WordPress θα εμφανίσει τους βασικούς καταλόγους εφαρμογών. Στο εσωτερικό του wp-content θα βρείτε a plugins Ευρετήριο. Εδώ είναι όπου θα φιλοξενούνται όλα τα μεμονωμένα plug-in σας, είτε μεμονωμένα αρχεία είτε υπο-καταλόγους με σωστή ονομασία.
Για μικρότερες προσθήκες που απαιτούν μόνο ένα μόνο αρχείο .php, έχετε την επιλογή να τοποθετήσετε αυτό απευθείας στις προσθήκες / κατάλογο. Ωστόσο, όταν αρχίζετε να αναπτύσσετε πιο περίπλοκες εφαρμογές, είναι πολύ πιο χρήσιμο να δημιουργήσετε έναν υποκατάλογο που ονομάζεται μετά από την προσθήκη σας. Μέσα μπορείτε να φιλοξενήσετε το JavaScript, το CSS και το HTML μαζί με τις λειτουργίες PHP.
ΕΝΑ readme.txt
το αρχείο μπορεί επίσης να είναι χρήσιμο εάν προγραμματίζετε να προσφέρετε την προσθήκη σας για λήψη. Αυτό το αρχείο θα πρέπει να περιλαμβάνει το όνομά σας και τι κάνει το plugin. Ως συντάκτης, μπορείτε επίσης να εξετάσετε λεπτομέρειες σχετικά με κάθε αναθεώρηση και ποιες ενημερώσεις έχουν βγει.
2. Ξεκινήστε το αρχείο PHP
Κατά τη δημιουργία ενός νέου plugin θα πρέπει να ξεκινήσετε με ένα απλό αρχείο PHP. Αυτό μπορεί να ονομάζεται οτιδήποτε, αλλά θα πρέπει γενικά να αντικατοπτρίζει το επίσημο όνομα του plug-in σας. Έτσι, για παράδειγμα, έχω δημιουργήσει τον βασικό μας κώδικα και ονομάσαμε το αρχείο μου hongkiat-excerpt.phps.
Οι πρώτες γραμμές της προσθήκης σας πρέπει να είναι σχόλια για την μηχανή ανάλυσης. Αυτό είναι εξαιρετικά σημαντικό καθώς το WordPress δεν θα μπορέσει να επεξεργαστεί το αρχείο σας χωρίς. Παρακάτω είναι ένα παράδειγμα snippit κώδικα που μπορείτε να αντιγράψετε και να διαμορφώσετε προς το δικό σας.
Το όνομα της προσθήκης είναι αυτό που θα εμφανιστεί στον πίνακα διαχείρισης του Backend όταν θα ενεργοποιήσετε. Το ίδιο με το URI που θα τοποθετηθεί στο παράθυρο λεπτομερειών μέσα στον πίνακα εφαρμογών. Παρόλο που δεν απαιτείται να περιλαμβάνει μια έκδοση ή μια περιγραφή, κάνει το plugin σας πολύ πιο επαγγελματικό.
3. Συμβάσεις ονοματοδοσίας WordPress και βέλτιστες πρακτικές
Υπάρχουν μερικοί τρόποι πραγματικής δομής της προσθήκης σας. Πολλές φορές οι προγραμματιστές της PHP θα δημιουργήσουν ένα ολόκληρο σύστημα κλάσης προκειμένου να αποφευχθούν συγκρούσεις με λειτουργίες και ονόματα μεταβλητών. Εάν δεν είστε εξοικειωμένοι με την προηγμένη λειτουργικότητα OOP της PHP, τότε είναι καλύτερο να γράψετε τον κωδικό σας σε λειτουργίες δείγματος.
Έτσι για τον κώδικα παράδειγμα μας θα γράψουμε μια ενιαία συνάρτηση που θα φιλοξενεί τα δεδομένα μας. Πρέπει επίσης να ορίσουμε μερικές μεταβλητές οι οποίες είναι βασικές για την εφαρμογή μέσα στα αρχεία προτύπων μας. Παρακάτω είναι ένα κομμάτι παραδείγματος κώδικα που έχει ληφθεί από το αρχείο προσθήκης μας με την κεντρική λογική που αφαιρέθηκε.
Κατά τη σύνταξη του δείγματος κώδικα σας είναι καλύτερο να ακολουθείτε τους κανονισμούς και τους οδηγούς που έχουν δημιουργηθεί από το WordPress. Δεδομένου ότι υπάρχουν τόσες πολλές εσωτερικές λειτουργίες που έχουν ήδη οριστεί, μπορείτε να αποφύγετε διπλότυπα, προθέτοντας μια ετικέτα σε όλες τις μεταβλητές και ονόματα λειτουργιών.
Στα παραπάνω παραδείγματα προθέσαμε όλα τα ονόματα ρυθμίσεων με hongkiat. Αυτό μπορεί να αντικατασταθεί με οποιαδήποτε λέξη-κλειδί της επιλογής σας συνήθως σχετίζεται με το όνομα της προσθήκης σας. Ο παραπάνω κώδικας είναι απλά ρυθμίσεις δείγματος και δεν πρέπει να αφορούν την τελική προσθήκη μας. Αυτό είναι μόνο για να σας δώσει κάποια εικόνα για το πώς θα πρέπει να γράψετε τα ονόματα των μεταβλητών σας και τις κλήσεις λειτουργίας.
4. Κατάδυση σε φίλτρα και ενέργειες
Υπάρχει μια άλλη ιδέα που αξίζει να αναφέρουμε πριν περάσουμε στον ακατέργαστο κώδικα μας. Ενέργειες και φίλτρα είναι δύο τελείως διαφορετικές έννοιες που σχετίζονται βαθιά με τους τρόπους που χειρίζονται τα δεδομένα των plugin.
Αυτά τα δυο κομμάτια του κώδικα είναι τυποποιημένα μέσα στο API του WordPress. Τα φίλτρα και οι ενέργειες επιτρέπουν στους προγραμματιστές plug-in να ενημερώνουν τα bits του κώδικα σε όλο το WordPress admin panel σχετικά με τη νέα σας προσθήκη. Αυτό σημαίνει ότι μπορείτε να προσθέσετε μια νέα καρτέλα στην πλαϊνή γραμμή ή σε πρόσθετες συνδέσεις ρυθμίσεων για τις επιλογές Plug-in.
Κατανοώντας το add_filter ()
ΕΝΑ φίλτρο χρησιμοποιείται σε ένα κομμάτι κειμένου ή δεδομένα που μεταφέρονται στο WordPress. Με φίλτρα είστε κυριολεκτικά σε θέση να περιεχομένου φίλτρου μέσω των δικών σας προσαρμοσμένων γραπτών λειτουργιών για να αλλάξετε δεδομένα με οποιονδήποτε τρόπο.
Για παράδειγμα, μπορείτε να δημιουργήσετε ένα φίλτρο για αλλαγή $ the_content
η οποία είναι μια μεταβλητή που έχει οριστεί από το WordPress και περιέχει ολόκληρο το περιεχόμενο μετάδοσης ενός άρθρου WordPress. Για το plug-in μας θα πάμε $ the_content
και συντομεύοντας το μήκος των χαρακτήρων σε ένα απόσπασμα.
Τα φίλτρα είναι χρήσιμα όταν γράφετε plug-ins για να προσαρμόσετε την εμφάνιση και την αίσθηση του ιστολογίου σας. Αυτά είναι ιδιαίτερα δημοφιλή όταν γράφετε widgets ή μικρότερες λειτουργίες για να αλλάξετε τον τρόπο εμφάνισης μιας ανάρτησης. Παρακάτω είναι μια γραμμή δείγματος κώδικα που δείχνει πώς να εφαρμόσετε ένα φίλτρο.
add_filter ('wp_title', 'hongkiat_func').
Εδώ προσθέτουμε ένα φίλτρο στον τίτλο της σελίδας WordPress. Σημειώστε ότι αυτός ο κώδικας δεν σχετίζεται με την επίσημη προσθήκη μας και χρησιμοποιείται μόνο ως παράδειγμα εδώ.
ο add_filter
η λειτουργία είναι εγγενής στο WordPress και χρησιμοποιείται για να προσθέσετε ένα νέο φίλτρο σε μια μεταβλητή που βρίσκεται μέσα στο περιεχόμενο της σελίδας. Στην παραπάνω γραμμή στοχεύουμε $ wp_title
που περιέχει τον τίτλο της τρέχουσας σελίδας μας. Στη συνέχεια περνάμε αυτή τη μεταβλητή σε μια ψεύτικη λειτουργία με τίτλο hongkiat_func ()
η οποία θα μπορούσε να χειριστεί και να επιστρέψει μια νέα ετικέτα τίτλου για οποιουσδήποτε σκοπούς.
Η κατανόηση του add_action ()
Οι ενέργειες είναι παρόμοιες με τα φίλτρα στο ότι δεν δουλεύουν σε κομμάτια δεδομένων, αλλά στοχεύουν σε αντικατάσταση προκαθορισμένων περιοχών στα πρότυπα και στον πίνακα διαχειριστή. Για παράδειγμα, μπορείτε να εφαρμόσετε μια ενέργεια κάθε φορά που ενημερώνετε ή επεξεργάζεστε το περιεχόμενο μιας σελίδας. Το WordPress προσφέρει μια ολοκληρωμένη λίστα ενεργειών στην τεκμηρίωση του API. Παρακάτω είναι μια μικρή λίστα με παραδείγματα ενεργειών για να εξοικειωθείτε με μερικές από τις προκαθορισμένες περιοχές-στόχους.
- publish_post - όταν μια δημοσίευση δημοσιεύεται ή όταν αλλάζει η κατάσταση “που δημοσιεύθηκε”
- save_post - κλήση όταν δημιουργείται μια θέση / σελίδα από την αρχή ή την ενημέρωση
- wp_head - που καλείται όταν φορτώνεται το πρότυπο και εκτελείται το
wp_head ()
λειτουργία - loop_end - που ονομάζεται αμέσως μετά την επεξεργασία της τελικής ανάρτησης μέσω του βρόχου WordPress
- trackback_post - που ονομάζεται κάθε φορά που ένα νέο trackback προστίθεται σε μια θέση
Και πάλι μπορούμε να δούμε πόσο απλό είναι αυτό το κομμάτι του κώδικα. Εάν μπορείτε να κατανοήσετε τη διαφορά μεταξύ των ενεργειών και των φίλτρων, θα είστε πολύ πιο κοντά στην κατασκευή περιεκτικών plugins WordPress που λειτουργούν. Παρακάτω υπάρχει μια άλλη γραμμή κώδικα που αρχικοποιεί μια λειτουργία δράσης στο save_post
άγκιστρο. Για να αποσαφηνιστεί και πάλι αυτό δεν σχετίζεται με την τρέχουσα ανάπτυξη του plugin μας και χρησιμοποιείται μόνο ως κομμάτι παραδείγματος κώδικα για να κατανοήσουμε το add_action ()
λειτουργία.
add_action ('save_post', 'ειδοποιήστε');
Έτσι, εδώ βλέπουμε μια παρόμοια ρύθμιση με πριν με add_filter ()
. Χρειαζόμαστε 2 μεταβλητές, η πρώτη κρατά το όνομα του γάντζου που στοχεύουμε. Σε αυτήν την περίπτωση save_post
που σημαίνει ότι κάθε φορά που αποθηκεύεται μια νέα θέση, θα καλέσουμε τη λειτουργία που ορίζεται στη δεύτερη θέση (κοινοποιώ()
). Θα μπορούσατε προφανώς να ενημερώσετε την ειδοποίηση ώστε να είναι ό, τι όνομα συνάρτησης θα θέλατε να εκτελέσετε, ωστόσο αυτό δεν απαιτείται για το τρέχον παράδειγμα του plug-in.
Τελειώνοντας τη Λογική Plugin μας
Ολοκληρώνοντας την πορεία μας, προσθέτουμε την τελική μας λειτουργία απευθείας στο αρχείο plug-in. Η τεκμηρίωση API είναι πολύ συγκεκριμένη και παρέχει έναν εξαιρετικό πόρο στους προγραμματιστές που ενδέχεται να έχουν προχωρημένες ερωτήσεις. Το υλικό μπορεί να φαίνεται δύσκολο αν δεν είστε εξοικειωμένοι με την PHP, αλλά παίρνετε το χρόνο σας με τις έννοιες και τα πράγματα θα αρχίσουν να ρέουν φυσικά!
Η παρακάτω λειτουργία πρέπει να προστεθεί αμέσως μετά το σχόλιο της κεφαλίδας του plugin σας. Εναλλακτικά, αυτό θα μπορούσε επίσης να τοποθετηθεί μέσα στο θέμα σας functions.php
αρχείο. Ο κώδικας χρησιμοποιείται για τη δημιουργία δυναμικού περιεχομένου δημοσίευσης βάσει περιορισμένου εύρους χαρακτήρων.
Έτσι για το παράδειγμά μας μπορούμε να περιορίσουμε αποσπάσματα ιστορίας μόνο 55 χαρακτήρων με το hk_trim_content ()
λειτουργία. Θα μπορούσατε να καλέσετε το κομμάτι αυτού του κώδικα από ένα γραφικό στοιχείο πλευρικής εργαλειοθήκης ή ένα από τα θέματα που θέλετε να αντικαταστήσετε $ the_content
.
= $ όριο) array_pop ($ content); $ content = implode ("", $ περιεχόμενο). '...'; else $ content = εμφάνιση ("", $ περιεχόμενο); $ content = preg_replace ('/\[.+\]/', ', $ content)' $ content = apply_filters ('the_content', $ content); επιστροφή $ content;?
Δεν πρέπει να αναμένετε ότι κατανοείτε πλήρως όλες τις εσωτερικές μεταβλητές ή λειτουργίες που χρησιμοποιούνται εδώ. Απλά να αποκτήσετε μια γενική κατανόηση του τρόπου με τον οποίο πρέπει να γράψετε τις λειτουργίες σας και πώς θα έμοιαζε ένα παράδειγμα παράδειγμα είναι ένα πολύ καλό ξεκίνημα.
Μπορεί επίσης να παρατηρήσετε ότι χρησιμοποιούμε μια κλήση προς apply_filters
που είναι μια άλλη λειτουργία που σχετίζεται με το WordPress. Αυτή είναι μια άλλη πτυχή που δεν χρειάζεται να κατανοήσετε πλήρως, αλλά βοηθά με τον μελλοντικό προγραμματισμό πάνω από το WP. Ελέγξτε τη σελίδα αναφοράς apply_filters για περισσότερες λεπτομέρειες και συχνές ερωτήσεις σχετικά με το θέμα.
Η βασική λειτουργία παραπάνω ονομάζεται hk_trim_content ()
. Αυτό απαιτεί μόνο μία ονομαστική παράμετρο $ limit
. Αυτό θα μπορούσε επίσης να μειωθεί $ lim
η οποία θα πρέπει να αποθηκεύει έναν ακέραιο προσδιορίζοντας πόσους χαρακτήρες να περιορίσετε το απόσπασμά σας. Το περιεχόμενο χρησιμοποιείται σε πλήρεις σελίδες μετά τη δημοσίευση καθώς και σε στατικές σελίδες (σχετικά με εμάς, επικοινωνία).
Επομένως, για να ονομάσουμε αυτή τη συνάρτηση θα χρειαστεί να προσθέσουμε την παράμετρο στα αρχεία προτύπων μας. Αυτό θα τοποθετηθεί κάπου ενδεχομένως στο δικό σας index.php
ή loop.php
αρχεία και θα απαιτήσει πρώτα να εγκαταστήσετε το plugin. Παράδειγμα παρακάτω:
Εγκατάσταση και εκτέλεση της προσθήκης
Δημιούργησα ένα δείγμα αρχείου για την επίδειξη plugin, αν θέλετε να παραλείψετε την σκληρή κωδικοποίηση. Απλά κατεβάστε αυτό το αρχείο (μετονομάστε το σε .php) ή αντιγράψτε / επικολλήστε τον κώδικα σε ένα νέο έγγραφο PHP και φορτώστε το στο δικό σας / wp-content / plugins
Ευρετήριο.
Μόλις ολοκληρωθεί θα πρέπει να έχετε πρόσβαση στον πίνακα διαχείρισης του WordPress και να περιηγηθείτε στο τρέχον σύνολο των προσθηκών για το demo που μόλις εγκαταστήσατε. Μόλις ενεργοποιήσετε τίποτα δεν θα συμβεί κάτι νέο, εκτός και αν προσθέσουμε με το χέρι την κλήση λειτουργίας μας. Για να το κάνετε αυτό απλά πλοηγηθείτε Εμφάνιση -> Επεξεργαστής
και αναζητήστε single.php
.
Αυτό το αρχείο περιέχει όλα τα πρότυπα HTML / CSS για τη βασική σελίδα δημοσίευσης άρθρου. Μετακινηθείτε προς τα κάτω μέχρι να βρείτε το περιεχόμενο()
και αντικαταστήστε με τον παραπάνω κώδικα. Αυτό θα περιορίσει όλες τις σελίδες του άρθρου σας σε 55 χαρακτήρες ανεξάρτητα από την άποψη που χρησιμοποιείται. Θα μπορούσατε επίσης να προσθέσετε σε αυτή τη λειτουργία παρόμοιες σελίδες στον κατάλογο προτύπων όπως π.χ. search.php
ή archive.php
.
συμπέρασμα
Αυτά είναι μερικά από τα βασικά για να ξεκινήσετε να εργάζεστε μέσα στην ανάπτυξη του WordPress. Το σύστημα plugin είναι τεράστιο και περιέχει μεγάλη εσωτερική λειτουργικότητα. Εάν έχετε ήδη μια ιδέα για μια προσθήκη, δοκιμάστε την σε μια τοπική εγκατάσταση του WordPress για να ασκήσετε αυτά τα θέματα.
Αν εξακολουθείτε να έχετε σύγχυση με πολλές από τις πληροφορίες, μπορείτε να ανατρέξετε στην τεκμηρίωση του WordPress και να αναζητήσετε την απάντησή σας εκεί. Η κοινότητα ανάπτυξης είναι γεμάτη από χρήσιμους χρήστες και τα φόρουμ κρατούν αρχεία με ερωτήσεις από χρόνια πίσω.