Gutenberg Όλα όσα πρέπει να ξέρετε για τον τελευταίο επεξεργαστή του WordPress
Gutenberg είναι ένα νέο πρόγραμμα επεξεργασίας για WordPress που θα είναι εντελώς αντικαταστήστε τον τρέχοντα επεξεργαστή με TinyMCE. Πρόκειται για ένα φιλόδοξο έργο που θα αλλάξει αδιαμφισβήτητα το WordPress με πολλούς τρόπους και θα επηρεάσει τόσο τους τακτικούς τελικούς χρήστες όσο και τους προγραμματιστές, και συγκεκριμένα εκείνους που εξαρτώνται από την οθόνη editor για την εργασία στο WordPress. Εδώ είναι πώς φαίνεται.
Ο Gutenberg εισάγει επίσης ένα νέο πρότυπο στο WordPress που ονομάζεται “ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ”.
“ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ” είναι ο αφηρημένος όρος που χρησιμοποιείται για να περιγράψει μονάδες σήμανσης που αποτελούνται από το περιεχόμενο ή τη διάταξη μιας ιστοσελίδας. Η ιδέα συνδυάζει τις έννοιες του τι σήμερα επιτυγχάνεται με το WordPress shortcodes, custom HTML και ενσωματώστε την ανακάλυψη σε ένα ενιαίο συνεπές API και εμπειρία χρήστη.
Ρύθμιση του Έργου
Γνωρίζοντας το γεγονός ότι το Gutenberg είναι χτισμένο πάνω από το React, ορισμένοι προγραμματιστές ανησυχούν ότι το το φραγμό είναι πολύ υψηλό για αρχάριους για την ανάπτυξη του Gutenberg.
Η εγκατάσταση του React.js θα μπορούσε να είναι αρκετά χρονοβόρα και σύγχυση αν έχετε μόλις ξεκινήσει με αυτό. Θα χρειαστείτε τουλάχιστον μετασχηματιστή JSX, Babel, ανάλογα με τον κωδικό σας μπορεί να χρειαστείτε κάποια πρόσθετα Babel και ένα Bundler όπως το Webpack, το Rollup ή το Parcel.
Ευτυχώς, μερικοί άνθρωποι μέσα στην κοινότητα του WordPress επιταχύνθηκαν και προσπαθούν να κάνουν την ανάπτυξη του Gutenberg όσο το δυνατόν πιο εύκολη για όλους να ακολουθήσουν. Σήμερα, διαθέτουμε ένα εργαλείο που θα δημιουργήσει μια πλάκα Gutenberg έτσι μπορούμε να αρχίσουμε να γράφουμε κώδικα αμέσως αντί να βρεθείτε με τα εργαλεία και τις διαμορφώσεις.
Δημιουργία μπλοκ Guten
ο δημιουργία-block-guten
είναι ένα έργο που ξεκίνησε από τον Ahmad Awais. Είναι ένα εργαλείο μηδενικής διαμόρφωσης (# 0CJS
) που θα σας επιτρέψουν να αναπτύξετε το μπλοκ Gutenberg με μερικές σύγχρονες στοίβες, όπως React, Webpack, ESNext, Babel, ESLint και Sass. Ακολουθήστε τις οδηγίες για να ξεκινήσετε με το Create Guten Block.
Χρησιμοποιώντας το ES5 (ECMAScript 5)
Χρησιμοποιώντας όλα αυτά τα εργαλεία για να δημιουργήσετε ένα απλό “Γειά σου Κόσμε” μπλοκ μπορεί να φαίνεται πάρα πολύ. Εάν θέλετε να διατηρήσετε άθλιες τις στοίβες σας, μπορείτε πραγματικά να αναπτύξετε ένα μπλοκ Gutenberg χρησιμοποιώντας ένα απλό καλό ECMAScript 5 που ίσως έχετε ήδη εξοικειωθεί με. Εάν έχετε WP-CLI 1.5.0 εγκατεστημένο στον υπολογιστή σας, μπορείτε απλά να τρέξετε ...
wp σκαλωσιά[--title = ] [--dashicon = ] [--κατηγορία = ] [-θέμα] [--plugin = ] [--force]
… προς το δημιουργήστε το boilerplate του μπλοκ Gutenberg στο plugin ή το θέμα σας. Αυτή η προσέγγιση είναι πιο λογική, ιδιαίτερα, για τα υπάρχοντα πρόσθετα και τα θέματα που αναπτύξατε πριν από την εποχή Gutenberg.
Αντί να δημιουργήσετε ένα νέο plugin για να φιλοξενήσετε τα μπλοκ Gutenberg, ίσως θελήσετε να ενσωματώσετε τα μπλοκ στα plugins ή τα θέματα σας. Και για να είναι εύκολο να ακολουθήσετε αυτό το σεμινάριο για όλους, θα χρησιμοποιήσουμε το ECMAScript 5 με το WP-CLI.
Καταχώριση νέου μπλοκ
Το Gutenberg αναπτύσσεται επί του παρόντος ως plugin και θα συγχωνευθεί με το WordPress 5.0 όποτε η ομάδα αισθάνεται ότι είναι έτοιμη. Έτσι, προς το παρόν, θα χρειαστεί να το εγκαταστήσετε από το Η σελίδα "Πρόσθετα" στη σελίδα wp-admin
. Μόλις το έχετε εγκαταστήσει και ενεργοποιήσει, εκτελέστε την ακόλουθη εντολή στο Terminal ή στη γραμμή εντολών, αν βρίσκεστε σε ένα μηχάνημα των Windows.
wp σειρά σκαλωσιού σειρά - title = "Σειρά HTML5" - θεματολογία
Αυτή η εντολή θα δημιουργήσει ένα μπλοκ στο τρέχον ενεργό θέμα. Το Block μας θα αποτελείται από τα ακόλουθα αρχεία:
. ΕΝΑ¢Â ??  ?? â ??  ?? â ?? ?? σειρά Ã¢Â ?? Â'Ã' Ã' â ??  ?? â ??  ?? â ?? ?? block.js â ?? Â'Ã' Ã' â ??  ?? â ??  ?? â ?? ?? editor.css â ?? Â'Ã' Ã' â ??  ?? â ??  ?? â ?? ?? style.css â ??  ?? â ??  ?? â ?? ?? series.php
Ας φορτώσουμε το κύριο αρχείο των μπλοκ μας στο functions.php
του θέματος μας:
αν (function_exists ('register_block_type')) απαιτούν get_template_directory (). '/blocks/series.php';
Παρατηρήστε ότι επισυνάπτουμε τη φόρτωση του αρχείου με όρους. Αυτό εξασφαλίζει συμβατότητα με την προηγούμενη έκδοση του WordPress ότι το μπλοκ μας φορτώνεται μόνο όταν υπάρχει Gutenberg. Το μπλοκ μας θα πρέπει τώρα να είναι διαθέσιμο στη διεπαφή Gutenberg.
Αυτό φαίνεται με την εισαγωγή του μπλοκ.
API Gutenberg
Ο Gutenberg εισάγει δύο σύνολα API για να δηλώσει ένα νέο Block. Αν κοιτάξουμε το series.php
, θα βρούμε τον ακόλουθο κώδικα που καταχωρεί το νέο μας Block. Επίσης φορτώνει το φύλλο στυλ και τα JavaScript στο front-end και τον επεξεργαστή.
register_block_type ('twentyseventeen / series', array ('editor_script' => 'series-block-editor', 'editor_style' => 'block-editor';
Όπως μπορούμε να δούμε παραπάνω, το Block μας ονομάζεται είκοσι δεκαεπτά / σειρά
, το όνομα του μπλοκ πρέπει να είναι μοναδικό και να ονομάζεται για να αποφευχθεί η σύγκρουση με τα άλλα μπλοκ που φέρνουν τα άλλα πρόσθετα.
Επί πλέον, Το Gutenberg παρέχει ένα σύνολο νέων API JavaScript για να αλληλεπιδράσει με το “ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ” διεπαφή στον επεξεργαστή. Δεδομένου ότι το API είναι αρκετά άφθονο, θα επικεντρωθούμε σε κάποιες λεπτομέρειες που νομίζω ότι θα πρέπει να γνωρίζετε για να έχετε ένα απλό αλλά λειτουργικό Gutenberg Block.
wp.blocks.registerBlockType
Πρώτον, θα εξετάσουμε wp.blocks.registerBlockType
. Αυτή η λειτουργία χρησιμοποιείται για εγγραφείτε νέο “ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ” στον συντάκτη Gutenberg. Απαιτεί δύο επιχειρήματα. Το πρώτο επιχείρημα είναι το όνομα του μπλοκ το οποίο πρέπει να ακολουθεί το όνομα που έχει καταχωρηθεί στο register_block_type
λειτουργία στην πλευρά της PHP. Το δεύτερο επιχείρημα είναι ένα Αντικείμενο που ορίζει τις ιδιότητες Block όπως τον τίτλο, την κατηγορία και μερικές λειτουργίες για την απόδοση της διεπαφής Block.
var registerBlockType = wp.blocks.registerBlockType; (), title: __ ('Σειρά HTML5'), κατηγορία: 'widgets', λέξεις-κλειδιά: ['html'], );
wp.element.createElement
Αυτή η λειτουργία σας επιτρέπει να δημιουργήσετε το στοιχείο μέσα στο “ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ” στο μεταγλωττιστή. ο wp.element.createElement
λειτουργία είναι βασικά μια αφαίρεση του React createElement ()
συνεπώς, δέχεται την ίδια σειρά επιχειρημάτων. Το πρώτο επιχείρημα παίρνει τον τύπο του στοιχείου για παράδειγμα μία παράγραφο, α σπιθαμή
, ή α div
όπως φαίνεται παρακάτω:
wp.element.createElement ('div');
Μπορούμε alias τη συνάρτηση σε μια μεταβλητή οπότε είναι μικρότερο να γράφετε. Για παράδειγμα:
el el = wp.element.createElement; el ('div').
Αν εσύ προτιμούν να χρησιμοποιούν τη νέα σύνταξη ES6, μπορείτε επίσης να το κάνετε αυτό:
const createElement: el = wp.element; el ('div').
Μπορούμε επίσης προσθέστε τα χαρακτηριστικά στοιχείων Όπως τάξη
όνομα ή ταυτότητα
στη δεύτερη παράμετρο ως εξής:
el el = wp.element.createElement; el ('div', 'class': 'σειρά-html5', 'id': 'σειρά-html-post-id-001');
ο div
που δημιουργήσαμε δεν θα είχε νόημα χωρίς το περιεχόμενο. Μπορούμε προσθέστε το περιεχόμενο στο όρισμα της τρίτης παραμέτρου:
el el = wp.element.createElement; el ('p', 'class': 'series-html5', 'id': 'series-html-post-id-001', 'Το άρθρο αυτό αποτελεί μέρος της σειράς "HTML5 / CSS3 Tutorials" για να σας βοηθήσει να φτιάξετε έναν καλύτερο σχεδιαστή ή / και προγραμματιστή. Κάντε κλικ εδώ για να δείτε περισσότερα άρθρα από την ίδια σειρά ').
wp.components
ο wp.components
περιέχουν μια συλλογή από, όπως υποδηλώνει το όνομα, τα συστατικά του Gutenberg. Αυτές οι συνιστώσες είναι τεχνικά React custom components που περιλαμβάνουν το Button, Popover, Spinner, Tooltip και μια δέσμη άλλων. Μπορούμε επαναχρησιμοποιήστε αυτά τα εξαρτήματα στο δικό μας Block. Στο ακόλουθο παράδειγμα, προσθέτουμε ένα στοιχείο κουμπιού.
var Κουμπί = wp.components.Button; el (Κουμπί, 'class': 'κουμπί λήψης',, 'Λήψη');
Γνωρίσματα
Τα χαρακτηριστικά είναι ο τρόπος αποθήκευσης των δεδομένων στο Block μας, τα δεδομένα αυτά θα μπορούσαν να είναι όπως το περιεχόμενο, τα χρώματα, οι ευθυγραμμίσεις, η διεύθυνση URL κλπ. Μπορούμε να πάρουμε τα χαρακτηριστικά από τα Properties που πέρασαν επεξεργασία()
ως εξής:
επεξεργασία: λειτουργία (υποστηρίγματα) var content = props.attributes.seriesContent; επιστροφή el ('div', 'class': 'σειρά-html5', 'id': 'series-html-post-id-001', περιεχόμενο);
Για να ενημερώσουμε τα Χαρακτηριστικά, χρησιμοποιούμε το setAttributes ()
λειτουργία. Συνήθως θα αλλάζαμε το περιεχόμενο σε συγκεκριμένες ενέργειες όπως όταν κάναμε κλικ σε ένα κουμπί, συμπληρώσαμε μια είσοδο, επιλέξαμε μια επιλογή κλπ. Στο ακόλουθο παράδειγμα, το χρησιμοποιούμε για να προσθέσουμε ένα εφεδρικό περιεχόμενο του Block μας σε περίπτωση που κάτι αναπάντεχο συνέβη με μας seriesContent
Χαρακτηριστικό.
edit: λειτουργία (υποστηρίξεις) if (typeof props.attributes.seriesContent === 'undefined' ||! props.attributes.seriesContent) props.setAttribute contentContent: 'Hello World! ) var content = props.attributes.seriesContent; επιστροφή [el ('div', 'class': 'σειρά-html5', 'id': 'series-html-post-id-001', περιεχόμενο),];
Αποθήκευση του μπλοκ
ο αποθηκεύσετε()
λειτουργία λειτουργεί παρόμοια με το επεξεργασία()
, εκτός από τον ορισμό του περιεχομένου του μπλοκ για αποθήκευση στη βάση δεδομένων μετά. Η αποθήκευση του περιεχομένου Block είναι αρκετά απλή, όπως βλέπουμε παρακάτω:
save: συνάρτηση (υποστηρίξεις) if (! props ||! props.attributes.seriesContent) επιστροφή; var content = props.attributes.seriesContent; επιστροφή [el ('div', 'class': 'σειρά-html5', 'id': 'series-html-post-id-001', περιεχόμενο),];
Τι έπεται?
Ο Gutenberg θα αλλάξει το οικοσύστημα WordPress προς το καλύτερο (ή ίσως το χειρότερο). Επιτρέπει στους προγραμματιστές να να υιοθετήσουν έναν νέο τρόπο ανάπτυξης των plugins και των θεμάτων του WordPress. Το Gutenberg είναι μόνο μια αρχή. Σύντομα “ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ” το παράδειγμα θα επεκταθεί σε άλλες περιοχές του WordPress όπως τα API Ρυθμίσεων και τα Widgets.
Μάθετε JavaScript βαθιά; είναι ο μόνος τρόπος για να μπει στο Gutenberg και να μείνει σχετικός με το μέλλον της βιομηχανίας WordPress. Αν είστε ήδη εξοικειωμένοι με τα βασικά του JavaScript, τις ιδιορρυθμίες, τις λειτουργίες, τα εργαλεία, τα αγαθά και τα μπαστούνια, είμαι πραγματικά σίγουρος ότι θα επιταχύνετε με το Gutenberg.
Όπως αναφέρθηκε, ο Gutenberg εκθέτει μια πληθώρα API, αρκετή για να κάνει σχεδόν οτιδήποτε στο Block σας. Μπορείτε να επιλέξετε εάν κωδικοποιήστε το Block σας με ένα απλό παλιό JavaScript, JavaScript με σύνταξη ES6, React ή ακόμα και Vue.
Ιδέες και Εμπνεύσεις
Δημιούργησα ένα πολύ (πολύ) απλό μπλοκ Gutenberg που μπορείτε να βρείτε στον αποθετήριο του λογαριασμού μας Github. Επιπλέον, έχω επίσης συγκεντρώσει μια σειρά αποθετηρίων από όπου μπορείτε να οδηγήσετε την έμπνευση για την οικοδόμηση ενός πιο σύνθετου Block.
- Gutenblocks - Μια συλλογή μπλοκ από τον Mathieu Viet γραμμένο σε JavaScript με τη σύνταξη ES5
- Πρόγραμμα Jetpack Gutenblocks - μια συλλογή από Blocks που παρέχεται στο Jetpack
- Μια λίστα παραδειγμάτων εφαρμογής του Gutenberg, συμπεριλαμβανομένου του Vue.js
Περαιτέρω αναφορά
- Gutenberg Επίσημη αποθήκη
- Gutenberg Handbook