Αναστασία Αδαμούδη - Δημιουργία σύνθετου μενού πλοήγησης σε block θέματα
Δημιουργία σύνθετων μενού στο WordPress: custom block ή επεξεργασία και επέκταση των core blocks; Ποια επιλογή προσφέρει καλύτερη εμπειρία χρήσης, ευελιξία και απόδοση; Μέσα από παραδείγματα, θα ανακαλύψουμε ποια λύση ταιριάζει σε κάθε περίπτωση.
Αγγλία → Background: • εμπειρία σε MERN stack (MongoDB, Express, React, Node) • η εξοικείωσή μου με το React με οδήγησε στη δημιουργία custom Gutenberg blocks • self-taught frontend development • School of Code full-stack development bootcamp
που συνήθως ανοίγουν σε μορφή συρταρωτού modal, περιέχοντας εικόνες, κείμενο, featured περιεχόμενο, πολύπλοκους υποσυνδέσμους κ.ά. QR Code με βίντεο-παραδείγματα
κάθε σύνδεσμο με υποσυνδέσμους • Mobile: Απλά επεκτάσιμα υπο-μενού • Δυναμικό περιεχόμενο που δέχεται δεδομένα από custom post types Το πρόβλημα που πρέπει να λύσουμε
υπάρχον core navigation block και προσθέτουμε custom λειτουργικότητα μέσω block extensions και block styles. 2 Custom Gutenberg Block Δημιουργούμε ένα εξ ολοκλήρου νέο block με δική του λογική και ρυθμίσεις για το μενού. 3 Υβριδική Λύση Custom block με επιλογή custom μενού όπως στη δεύτερη περίπτωση ή μενού που έχει δημιουργηθεί στον block editor με επέκταση core blocks και χρήση block styles όπως στην πρώτη περίπτωση. 💡 Οι τρεις μέθοδοι οδηγούν στο ίδιο αποτέλεσμα για τον τελικό χρήστη, αλλά με διαφορετική εμπειρία για τον developer που θα αναπτύξει το μενού πλοήγησης.
υπάρχοντα WordPress menus • Εύκολη επαναχρησιμοποίηση σε header, footer κ.ά. • Οικεία εμπειρία χρήσης για τον χρήστη του block editor • Χρήση PHP και JS Μειονεκτήματα • Τα core sublinks δεν υποστηρίζουν εικόνες/επιπλέον κείμενο • Χρειάζεται επέκταση με custom PHP & JS • “Learning curve” για ανάπτυξη θεμάτων block • Ανάγκη για styling overrides
overrides • Ανάπτυξη λειτουργικότητας του editor με βάση το React • Όλος ο κώδικας συγκεντρωμένος στο φάκελο του block • Ιδανικό για χρήση πλοήγησης μόνο σε ένα σημείο Μειονεκτήματα • Χρειάζεται custom inspector controls από μηδενική βάση • Δεν επαναχρησιμοποιεί μενού που έχουν δημιουργηθεί στον editor • Ο χρήστης χτίζει μενού μόνο για αυτό το block • Πλήρης έλεγχος από την αρχή • • To block χτίζεται κυρίως με React • Δυνατότητα χρήσης του ίδιου React κώδικα και στο frontend
controls στον block editor για το συγκεκριμένο block Server-Side Rendering PHP προβάλλει στο frontend τα χαρακτηριστικά (attributes) που δέχεται από τον editor και τις προετοιμάζει για το frontend Frontend JavaScript Χειρισμός hover/click, modal display, focus trapping, mobile adaptation - μόνο frontend λειτουργικότητα ή και πλήρης προβολή της frontend δομής Αρχεία: block.json, index.js, edit.js, render,php, view.js, editor.scss, style.scss, editor-components.js, editor-helper-functions.js, frontend-partials.php, helper-functions.php
block που έχει δικό του menu builder Ενσωμάτωση WordPress Menu Προσθέτουμε SelectControl για επιλογή wp_navigation posts από το Site Editor Υπό όρους εμφάνιση Αν επιλεγεί WP menu, εμφάνισε core/navigation block - αλλιώς custom navigation Σημείωση: Όταν χρησιμοποιείται WordPress menu, το view.js του custom block αγνοείται και ισχύει η λογική του core navigation block.
Επαναχρησιμοποίηση μενού • Σχετικά γρήγορη υλοποίηση • Οικεία UX για editors • Developers που προτιμούν PHP Custom Block Καλύτερο για: • Πλήρης έλεγχος styling • Χρήση πλοήγησης σε ένα μέρος • Developers με εμπειρία στο React • Συγκεντρωμένος κώδικας Υβριδική Λύση Καλύτερο για: • Best of both worlds • Χρήση διαφορετικών ειδών μενού • Μέγιστη αξιοποίηση των δυνατοτήτων του WordPress Όλες οι προσεγγίσεις παράγουν το ίδιο frontend αποτέλεσμα - η επιλογή εξαρτάται από τις απαιτήσεις κάθε έργου, την εξοικείωση του χρήστη με το WordPress admin και τον block editor, και τις προτιμήσεις της ομάδας/του ατόμου που αναπτύσσει το έργο.
διαφορετικές ανάγκες - η τελική απόφαση είναι του developer/της ομάδας 2 Το ίδιο αποτέλεσμα, διαφορετική διαδρομή Όλες οι μέθοδοι οδηγούν στην ίδια frontend εμπειρία με διαφορετικούς συμβιβασμούς 3 Σκεφτείτε μακροπρόθεσμα Λάβετε υπόψη προσβασιμότητα, οργάνωση, συντήρηση & επεκτασιμότητα του έργου, εμπειρία developer Σημείωση: Αν η πλοήγηση διαφέρει ουσιαστικά μεταξύ των διαφορετικών μεγεθών οθόνης (π.χ. διαφορετική διάταξη ή διαφορετικά εμφανιζόμενα στοιχεία σε desktop, tablet, mobile), χρειάζεται να επανεξετάσουμε τη στρατηγική μας.
ή μη προβλέψιμη συμπεριφορά εστίασης • Διπλότυπους συνδέσμους που μπορεί να προκαλέσουν σύγχυση στις συσκευές ανάγνωσης οθόνης • Δυσκολία στη διατήρηση συνεπούς σήμανσης ARIA ρόλων Πιο πρακτική προσέγγιση σε αυτή την περίπτωση: Ένα custom Gutenberg block με ελεγχόμενη ορατότητα των συνδέσμων ανά breakpoint.