Ένας από τους κύριους λόγους για τη συνεχή δημοτικότητα του WordPress είναι η ευκολία με την οποία μπορεί να επεκταθεί και να προσαρμοστεί με plugins.

Η οικοδόμηση ενός plugin μπορεί να φαίνεται σαν ένα αδύνατο έργο, αλλά είναι απλούστερο από ό, τι μπορεί να σκεφτείς. Σήμερα ξεκινάμε τη σειρά "Δημιουργία της πρώτης σας προσθήκης WordPress", η οποία θα καλύψει τις πιο σημαντικές αρχές και τις διαδικασίες της διαδικασίας.

Μέχρι το τέλος της σειράς θα είστε πλήρως προετοιμασμένοι να πραγματοποιήσετε περαιτέρω πειράματα από μόνος σας, βασιζόμενοι στις βέλτιστες πρακτικές και τις συμβάσεις που υιοθετήθηκαν από την εκτεταμένη κοινότητα WordPress.

Τι είναι το WordPress plugin;

Πρόκειται για ένα σενάριο PHP που τροποποιεί ή επεκτείνει τη φυσική λειτουργικότητα του WordPress.

Παρέχοντας ένα πολύ απλό αλλά ευέλικτο Plugin API , Το WordPress προμηθεύει κάθε προγραμματιστή με τα ακόλουθα πλεονεκτήματα για τη χρήση του plugin:

  • Δεν χρειάζεται να τροποποιήσετε τα αρχεία πυρήνα για να έχετε πρόσθετη ή εναλλακτική λειτουργικότητα. Αυτό σημαίνει ότι η λειτουργία plugin μπορεί να διατηρηθεί μέσω των βασικών ενημερώσεων
  • Το WordPress διαθέτει έναν ενσωματωμένο μηχανισμό απενεργοποίησης plugin, όταν ένα θανατηφόρο σφάλμα θα μπορούσε ενδεχομένως να σπάσει μια τοποθεσία
  • Η modularity του κώδικα για ένα συγκεκριμένο έργο αυξάνεται? ενημερώσεις και συντήρηση γίνεται ευκολότερη
  • Η λειτουργία προσθήκης χωρίζεται από θέματα
  • Το ίδιο plugin θα μπορούσε να χρησιμοποιηθεί με διαφορετικά θέματα και έχει κάποια σχεδίαση ανεξάρτητη λειτουργικότητα
  • Εκτεταμένη βάση κώδικα
  • Ως PHP script, ένα plugin μπορεί να εφαρμόσει σύγχρονες τεχνικές προγραμματισμού, π.χ. OOP, αλλά ταυτόχρονα έχει τη δυνατότητα να χρησιμοποιήσει τις φυσικές λειτουργίες του WordPress, τα μαθήματα και τα API.

Ανεξάρτητα από την εμπειρία κωδικοποίησης PHP - η δική σας αληθινά έγραψε το πρώτο της plugin μόλις τελείωσε ένα βιβλίο "PHP for Dummies" - είστε ένα μικρό βήμα μακριά από τη δημιουργία της πρώτης σας προσθήκης για το WordPress. Ας πάρουμε το βήμα μαζί.

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

Όνομα και αρχεία προσθήκης

Πρώτα απ 'όλα, πρέπει να διασφαλίσετε ότι το όνομα του plugin σας είναι μοναδικό. Ακόμη και αν δεν πρόκειται να κάνετε τη δουλειά σας δημόσια κυκλοφορία, πρέπει τουλάχιστον να είστε σίγουροι ότι δεν υπάρχει δυνατότητα του δικτυακού σας τόπου να χρησιμοποιεί δύο plugins με το ίδιο όνομα. Η απλή αναζήτηση αποθετηρίου (και Google) είναι ο φίλος σας όταν αποφεύγετε την εσφαλμένη επιλογή.

Για να αυξήσετε την πιθανότητα ένα όνομα να είναι μοναδικό, πολλοί προγραμματιστές δημιουργούν το πρόθεμα της μάρκας, το οποίο είναι συντομογραφία του ονόματος του προγραμματιστή (ή ψευδώνυμο). Αυτό το πρόθεμα με σύντομη αναφορά στο όνομα της προσθήκης θα πρέπει στη συνέχεια να χρησιμοποιείται παντού - σε ονόματα αρχείων, λειτουργιών, κλάσεων, μεταβλητών κλπ. Αυτό βοηθά στην αποφυγή συγκρούσεων ονομασίας με άλλα πρόσθετα, θέματα και τον ίδιο τον πυρήνα.

Ας ξεκινήσουμε με ένα παράδειγμα. Εγκαινιάζουμε το όνομα "Hello World Plugin" και αυξάνουμε τις πιθανότητες να είμαστε μοναδικοί και χρησιμοποιούμε το "My super prefix" που μετατρέπεται σε συντομογραφία "MSP". Αυτό μας δίνει το πραγματικά μοναδικό όνομα "MSP Hello World Plugin". η αναζήτηση μέσα από το χώρο αποθήκευσης των πρόσθετων στοιχείων επιβεβαιώνει ότι κανένας άλλος δεν το χρησιμοποιεί.

Το επόμενο βήμα είναι να δημιουργήσουμε τα αρχεία του plugin. Συνιστάται ιδιαίτερα να τις αποθηκεύσετε σε ένα ξεχωριστό φάκελο μέσα σε ένα ειδικό φάκελο plugin. Αυτός ο φάκελος θα πρέπει να ονομάζεται σύμφωνα με το ίδιο το plugin, στην περίπτωση μας θα μπορούσε να είναι 'msp-helloworld'. Ο φάκελος θα πρέπει να περιλαμβάνει το κύριο αρχείο προσθήκης με το ίδιο όνομα: 'msp-helloworld.php'.

ο WordPress Codex συνιστά επίσης ότι συμπεριλαμβάνετε ένα αρχείο readme.txt. Αυτό το αρχείο περιέχει τις πληροφορίες σχετικά με το plugin σας μια τυποποιημένη μορφή . Αν πρόκειται να υποβάλετε το plugin σας στο αποθετήριο WordPress, η ύπαρξη του readme.txt είναι υποχρεωτική. Αλλά μην το σκέφτεστε ως βάρος, υπάρχουν πολλά οφέλη για να γίνει αυτό.

Εάν το plugin σας υποτίθεται ότι έχει πολλά αρχεία ή φορτώνει ορισμένα στοιχεία (αρχεία εικόνων, css και js), θα πρέπει να οργανώνονται σε υποφακέλους. Η σωστή οργάνωση αρχείων αποτελεί ένδειξη επαγγελματικής εργασίας. Μπορείτε να βασιστείτε στο ακόλουθο μοτίβο:

Επικεφαλίδα προσθήκης

Κάθε plugin πρέπει να είναι υποχρεωτική επί κεφαλής . Βοηθάει το WordPress να αναγνωρίσει τη δέσμη ενεργειών ως έγκυρο plugin και να εξάγει τις κατάλληλες πληροφορίες στην οθόνη διαχείρισης των προσθηκών.

Αυτή η κεφαλίδα είναι ένα μπλοκ σχολίων PHP που βρίσκεται στην κορυφή του αρχείου του κύριου plugin:

/*Plugin Name: MSP Hello WorldDescription: Create hello world messageVersion: 1.0Author: Author's nameAuthor URI: http://authorsite.com/Plugin URI: http://authorsite.com/msp-helloworld*/

Οι πληροφορίες της κεφαλίδας θα εμφανίζονται στην αντίστοιχη σειρά του plugin στην οθόνη διαχείρισης.

Η σειρά των γραμμών δεν είναι σημαντική, αλλά το αρχείο πρέπει να είναι σε κωδικοποίηση UTF-8.

Σημειώστε ότι είναι σημαντικό να είστε σύμφωνοι με το πρότυπο αρίθμησης έκδοσης που έχετε επιλέξει (π.χ.xxx), για το μηχανισμό αναβάθμισης του WordPress για να το ανιχνεύσετε σωστά.

Διαδρομές στα αρχεία

Μέχρι τώρα έχουμε δημιουργήσει διαφορετικά αρχεία για το plugin μας (στους κατάλληλους υποφακέλους), τώρα πρέπει να προσδιορίσουμε τις σωστές διαδρομές (ή διευθύνσεις URL) σε αυτές μέσα στον κώδικα του plugin. Λαμβάνοντας υπόψη το γεγονός ότι ο φάκελος περιεχομένου wp θα μπορούσε να μετακινηθεί από την προεπιλεγμένη θέση του, γίνεται σαφές ότι οι διαδρομές στα αρχεία plugin δεν πρέπει να είναι hardcoded, αλλά θα πρέπει να εντοπιστούν.

Το WordPress έχει δύο λειτουργίες, plugin_dir_path και plugin_dir_url για την αντιμετώπιση του ζητήματος, αλλά μπορούμε να προχωρήσουμε περαιτέρω χρησιμοποιώντας το ακόλουθο τέχνασμα:

define('MSP_HELLOWORLD_DIR', plugin_dir_path(__FILE__));define('MSP_HELLOWORLD_URL', plugin_dir_url(__FILE__));

Με αυτό το μικρό απόσπασμα (που περιλαμβάνεται στο κύριο αρχείο plugin) εντοπίζουμε τη διαδρομή και τη διεύθυνση URL στο φάκελο του plugin μας μέσα στην εγκατάσταση του WordPress και τα αναθέτουμε στις κατάλληλες σταθερές. Μετά από αυτό μπορούμε να χρησιμοποιήσουμε αυτές τις σταθερές σε συνδυασμό με γνωστές σχετικές διαδρομές στους υπο-φακέλους, για παράδειγμα MSP_HELLOWORLD_DIR.'assets/img/image.jpg' .

Χρησιμοποιώντας αυτές τις σταθερές μπορούμε επίσης να συμπεριλάβουμε εύκολα αρχεία plugin από τους υπο-φακέλους μέσα στο κύριο αρχείο:

function msp_helloworld_load(){if(is_admin()) //load admin files only in adminrequire_once(MSP_HELLOWORLD_DIR.'includes/admin.php');require_once(MSP_HELLOWORLD_DIR.'includes/core.php');}msp_helloworld_load();

Plugins δηλώνει

Μετά την εγκατάσταση, το plugin θα μπορούσε να βρίσκεται σε ενεργή ή ανενεργή κατάσταση.

Η ενεργή κατάσταση σημαίνει ότι ενεργοποιήθηκε από το χρήστη και ο κώδικας του θα εκτελεστεί από το WordPress κάθε φορά που ζητείται μια σελίδα.

Το plugin θα μπορούσε επίσης να απενεργοποιηθεί από το χρήστη, πράγμα που σημαίνει ότι τα αρχεία διατηρούνται στις θέσεις τους, αλλά ο κώδικας δεν εκτελείται.

(Το plugin θα μπορούσε επίσης να απεγκατασταθεί εντελώς από έναν χρήστη, πράγμα που σημαίνει ότι τα αρχεία διαγράφονται από το φάκελο plugins.)

Το WordPress μπορεί να πιάσει αλλαγές σε αυτές τις καταστάσεις και να εκτελέσει κάποιο κώδικα προγραμματισμένο για τέτοιες αλλαγές. Αν κάποιος κώδικας έχει προγραμματιστεί για ενεργοποίηση ή απενεργοποίηση, θα εκτελείται μόνο σε αυτή τη συγκεκριμένη στιγμή, όχι σε κάθε φόρτωση σελίδας.

Για παράδειγμα, εάν το plugin υποτίθεται ότι χειρίζεται με κανόνες αναδιατύπωσης, θα πρέπει να τις καθαρίσει κατά την ενεργοποίηση / απενεργοποίηση. Εάν το πρόσθετο δημιουργεί μερικές καταχωρήσεις σε μια βάση δεδομένων, για παράδειγμα αποθηκεύοντας επιλογές, η υγιής πρακτική είναι να τα διαγράψετε όταν αποσυνδεθεί το plugin.

Πώς μπορεί να γίνει;

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

register_activation_hook(__FILE__, 'msp_helloworld_activation');register_deactivation_hook(__FILE__, 'msp_helloworld_deactivation');function msp_helloworld_activation() {//actions to perform once on plugin activation go here}function msp_helloworld_deactivation() {// actions to perform once on plugin deactivation go here}

Για τις ενέργειες κατάργησης εγκατάστασης έχουμε δύο εναλλακτικές λύσεις.

Μια επιλογή είναι να δημιουργήσετε ένα αρχείο uninstall.php στο φάκελο του plugin (μαζί με το κύριο αρχείο προσθήκης και readme.txt) και να συμπεριλάβετε όλους τους απαιτούμενους κώδικες. Εάν υπάρχει ένα uninstall.php, το WordPress θα το εκτελέσει αυτόματα όταν το plugin διαγραφεί από το χρήστη. Εναλλακτικά, μπορούμε να καταχωρήσουμε ένα άγκιστρο απεγκατάστασης σχεδόν με τον ίδιο τρόπο όπως και με τα άγκιστρα ενεργοποίησης και απενεργοποίησης. Το δύσκολο κομμάτι είναι να το καλέσετε μόνο μία φορά, κατά την ενεργοποίηση. Ακολουθεί ένα παράδειγμα:

register_activation_hook(__FILE__, 'msp_helloworld_activation');function msp_helloworld_activation() {//actions to perform once on plugin activation go here//register uninstallerregister_uninstall_hook(__FILE__, 'msp_helloworld_uninstall');}function msp_helloworld_uninstall(){//actions to perform once on plugin uninstall go here}

Είναι σημαντικό να γνωρίζετε ότι μόνο μία από τις εναλλακτικές λύσεις που περιγράφονται θα λειτουργήσει: αν υπάρχει uninstall.php, θα εκτελεστεί και οποιοσδήποτε άγκιστρο απεγκατάστασης δεν θα απολυθεί.

Βέλτιστες πρακτικές

Συνοψίζοντας όλα τα παραπάνω, εδώ είναι μια επισκόπηση της δημιουργίας μιας στέρεας βάσης για ένα WordPress plugin:

  • Βρείτε ένα μοναδικό όνομα
  • Ρυθμίστε ένα πρόθεμα (που σχετίζεται με το εμπορικό σήμα σας)
  • Δημιουργήστε το φάκελο του plugin
  • Δημιουργήστε υποφακέλους για αρχεία PHP, στοιχεία ενεργητικού και μεταφράσεις
  • Δημιουργήστε το κύριο αρχείο προσθήκης και συμπληρώστε τις υποχρεωτικές πληροφορίες κεφαλίδας
  • Δημιουργήστε ένα αρχείο readme.txt
  • Χρησιμοποιήστε τις κατάλληλες σταθερές και λειτουργίες για τον εντοπισμό διαδρομών στα αρχεία προσθήκης
  • Δημιουργήστε πρόσθετα αρχεία PHP και τα συμπεριλάβετε στο κύριο αρχείο
  • Δημιουργήστε λειτουργίες ενεργοποίησης και απενεργοποίησης
  • Δημιουργήστε ένα script απεγκατάστασης

συμπέρασμα

Μετά από όλα αυτά τα βήματα είστε έτοιμοι να κάνετε πραγματικά το plugin σας να κάνει κάτι δημιουργώντας τον κώδικα του. Θα γνωρίσουμε μερικές χρήσιμες έννοιες που καθιστούν τα plug-ins του WordPress συναρπαστικά και ευέλικτα στο επόμενο άρθρο αυτής της σειράς. Ωστόσο, ορισμένες σημαντικές πτυχές μπορούν να τονιστούν αυτή τη στιγμή:

  • Μην αναπτύξετε ποτέ χωρίς σφάλματα. Υπάρχουν πολλές πληροφορίες σχετικά με τη λειτουργία εντοπισμού σφαλμάτων WordPress και διάφορα πρόσθετα για να λάβετε επιπλέον ειδοποιήσεις. Είναι οι αξιόπιστοι βοηθοί σας στο δρόμο για τον κωδικό χωρίς λάθη και τον ενημερωμένο κώδικα.
  • Προθέστε τα πάντα. Χρησιμοποιήστε ένα μοναδικό πρόθεμα (συνήθως το παράγωγο όνομα της προσθήκης) για όλες τις λειτουργίες, τις μεταβλητές, τις κλάσεις κλπ., Για να διασφαλίσετε ότι το πρόθεμά σας είναι συμβατό με το έργο του άλλου προγραμματιστή.
  • Ακολουθηστε Πρότυπα κωδικοποίησης WordPress . Αυτά τα πρότυπα είναι ένα σύνολο κανόνων που εφαρμόζονται από την κεντρική ομάδα για όλο τον κώδικα WordPress για να είναι εύκολο να διαβαστούν και να διατηρηθούν. Ακολουθώντας αυτά τα πρότυπα βοηθά στη διατήρηση της συνέπειας του βασικού κώδικα μέσα στο plugin σας.
  • Χρησιμοποιήστε βασικές λειτουργίες, API και κλάσεις για κοινές εργασίες. Το WordPress παρέχει στους προγραμματιστές ένα ευρύ φάσμα εργαλείων για κοινά απαιτούμενες λειτουργίες (όπως αλληλεπίδραση βάσεων δεδομένων ή επαλήθευση χρήστη), ώστε να μπορείτε να επικεντρωθείτε στην πραγματικά μοναδική λειτουργικότητα του plugin σας.
  • Δηλώστε τον κωδικό σας. Στην πραγματικότητα δεν υπάρχουν πολλά που πρέπει να πούμε για αυτήν την αρχή - ανεξάρτητα από τις συμβάσεις που χρησιμοποιούνται, τόσο εσείς ως προγραμματιστής και εμείς ως κοινότητα επωφελούμαστε από τον καλά τεκμηριωμένο κώδικα.

Ελπίζω ότι αυτές οι εισαγωγικές πληροφορίες θα σας εμπνεύσουν να αρχίσετε να αναπτύσσεστε με το WordPress. Αναζητήστε το επόμενο μέρος της σειράς στο εγγύς μέλλον.

Κάντε κλικ εδώ για να κατεβάσετε το παράδειγμα "Hello World" για να το χρησιμοποιήσετε ως σκελετό για τη δική σας ανάπτυξη.

Τι συμβουλές θα προσθέσετε σε αυτή την εισαγωγή; Τι θα θέλατε να δείτε στο επόμενο άρθρο της σειράς; Ενημερώστε μας στα σχόλια!