Αρχική σελίδα » WordPress » Επανασύνδεση διευθύνσεων URL σε Συμβουλές και Plugins του WordPress

    Επανασύνδεση διευθύνσεων URL σε Συμβουλές και Plugins του WordPress

    Οι πιο πρόσφατες ενημερώσεις στο WordPress επέτρεψαν στους προγραμματιστές να προσαρμόσουν τον προσωπικό τους ιστότοπο πολύ γρήγορα. Είναι απλό να ενημερώσετε τις περιοχές του θέματος σας, να αντικαταστήσετε widgets στην πλαϊνή γραμμή και ακόμα να γράψετε τις δικές σας προσαρμοσμένες λειτουργίες κώδικα PHP. Η έκταση είναι τεράστια - και μια περιοχή δημοτικότητας ξαναγράφει αρκετά permalinks URL.

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

    Κατανόηση του WP_Rewrite

    Εάν είστε εξοικειωμένοι με το mod_rewrite στους διακομιστές Apache τότε θα πάρετε τη σύνταξη του WordPress. Το σύστημά τους είναι ακόμα χτισμένο πάνω από ένα .htaccess αρχείου, αλλά όλοι οι κανόνες κωδικοποιούνται στην PHP. Αυτό κάνει την διαδικασία λίγο πιο εύκολη, αφού έχουμε περισσότερο έλεγχο στη σύνταξη των δικών μας διευθύνσεων URL.

    Σας συνιστώ να αποκομίσω τη σελίδα κατηγορίας $ wp_rewrite καθώς έχει τόνο πληροφοριών για το θέμα. Υπάρχουν ακόμη και μικρά παραδείγματα που μπορούμε να αναφέρουμε για να καταστήσουμε τα πάντα πιο κατανοητά. Το μεγαλύτερο μέρος του κώδικα μπορεί να γραφτεί απευθείας στο θέμα σας functions.php αρχείο. Ας αρχίσουμε με την εξέταση των προεπιλεγμένων ξαναγράφων που έχουν ήδη συμπεριληφθεί στο WordPress.

    Περιεχόμενο των $ wp_rewrite-> κανόνων

    Δηλώνοντας το $ wp_rewrite class ως παγκόσμια έχουμε πρόσβαση σε όλα τα εσωτερικά δεδομένα. Όταν πηγαίνετε να προσθέσετε τους δικούς σας κανόνες, αυτές προστίθενται σε έναν πίνακα με το όνομα $ wp_rewrite-> κανόνες. Είναι σημαντικό να θυμάστε αυτήν τη μεταβλητή, καθώς πιθανότατα θα χρειαστεί να αναφέρετε τα δεδομένα πολλές φορές κατά τη διάρκεια της ανάπτυξης.

    κανόνες) · ?>

    Προστέθηκα αυτό το μπλοκ κώδικα στο θέμα μου page.php αρχείο. Θα εξάγει μια μεγάλη ποικιλία δεδομένων που μοιάζει με ένα μεγάλο χάος. Αλλά αν εσύ Προβολή προέλευσης στη σελίδα σας είναι πραγματικά εύκολο να δείτε ποιοι κανόνες αναδιατύπωσης αντιστοιχίζονται σε ποιο όνομα αρχείου. Για παράδειγμα, ας δούμε τους κανόνες για τις ξαναγραφείσες κατηγορίες:

    [category /(.+?)/?$] => index.php; category_name = $ ταιριάζει [1] 

    Το κομμάτι στην αριστερή πλευρά στις αγκύλες είναι το Apache RewriteRule που ψάχνουμε. Ξεκινώντας από το τμήμα /κατηγορία/ ακολουθούμενη από οποιαδήποτε σειρά χαρακτήρων. Αν αυτό ταιριάζει τότε ο διακομιστής ξέρει να αναφέρει index.php; category_name = ενώ αντικαθιστά τη μεταβλητή στο τέλος.

    Ρύθμιση προσαρμοσμένων κωδικών πρόσβασης

    Υπάρχει τόσο πολύ περιεχόμενο για να μεταβείτε στην κλάση $ wp_rewrite μόνο. Πολλές άλλες ιδιότητες μπορούν να αναφέρονται, όπως $ wp_rewrite-> category_base ή $ wp_rewrite-> author_base για το τράβηγμα των προεπιλεγμένων δομών URL για αυτές τις σελίδες. Αλλά εκτός από το τράβηγμα των προεπιλεγμένων ρυθμίσεων του WP μπορούμε να δημιουργήσουμε και τους δικούς μας κανόνες.

    Επανακατασκευή της Βάσης του Συγγραφέα

    Όταν εισέλθετε στη σελίδα ρυθμίσεων του Σταθμού, έχετε την επιλογή επαναφοράς της βάσης των ετικετών και των κατηγοριών. Ωστόσο, η επιλογή επαναφοράς της βάσης δημιουργών σας παραμένει περίεργα.

    Αλλά μπορούμε να το χρησιμοποιήσουμε το add_rewrite_rule () από το codex του WordPress για την ενσωμάτωση ορισμένων νέων ρυθμίσεων. Σε αυτή την περίπτωση έχω αντικαταστήσει /συντάκτης/ με /συγγραφέας/ αλλά μπορείτε να χρησιμοποιήσετε οποιαδήποτε βάση θέλετε. Επιπλέον, έχω αντιγράψει μερικές από τις άλλες ανακατευθύνσεις για σελίδες συγγραφέων και ροές RSS. Μπορείτε να προσθέσετε αυτό το μπλοκ κώδικα στο αρχείο functions.php του θέματος.

    add_action ('init', 'add_author_rules'); συνάρτηση add_author_rules () add_rewrite_rule ("συγγραφέας / ([^ /] +) /?", "index.php? author_name = $ ταιριάζει [1]", "κορυφή"); add_rewrite_rule ("συγγραφέας / ([^ /] +) / σελίδα /? (0-9) 1,)"; "index.php? author_name = $ αντιστοιχεί [1] ", "μπλουζα"); add_rewrite_rule ("συγγραφέας / ([^ /] +) / (feed | rdf | rss | rss2 | atom) /" "index.php? author_name = μπλουζα"); add_rewrite_rule ("συγγραφέας / ([^ /] +) / feed / (feed | rdf | rss | rss2 | atom) /?", "index.php? author_name = $ αντιστοιχεί [1] & feed = , "μπλουζα");  

    Αυτή η λειτουργία μπορεί να προσπελαστεί ακόμα και χωρίς τη χρήση της μεταβλητής $ wp_rewrite. Ορισμένοι προγραμματιστές μοιάζουν με αυτή τη μέθοδο επειδή είναι απλούστερη από την σκληρή κωδικοποίηση με ιδιότητες κατηγορίας. Ωστόσο, έχω παρατηρήσει επίσης ότι αυτή η μέθοδος δεν είναι πάντα αξιόπιστη για ορισμένες εγκαταστάσεις του WordPress. Υπάρχει στην πραγματικότητα μια δεύτερη επιλογή για να προσθέσετε αυτούς τους κανόνες στο άγκιστρο μετά την έξαψη του .htaccess (δείτε παρακάτω).

    Βάση συγγραφέων χρησιμοποιώντας gener_rewrite_rules

    Γράφοντας γι 'αυτή τη μέθοδο θα χρειαστεί και πάλι η παγκόσμια κλάση $ wp_rewrite. Τότε έχω ρυθμίσει μια νέα μεταβλητή που ονομάζεται $ new_rules το οποίο περιέχει μια συσσωρευτική σειρά δεδομένων. Ο παρακάτω υπόδειγμα κώδικα παρακάτω απλά ξαναγράφει την ενότητα της βασικής σελίδας συγγραφέων.

    συνάρτηση generate_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("συγγραφέας / ([^ /] +) /?" => "index.php? author_name =". $ wp_rewrite-> preg_index (1)); $ wp_rewrite-> κανόνες = $ new_rules + $ wp_rewrite-> κανόνες?  

    Αλλά αν θέλουμε να συμπεριλάβουμε πολλαπλές σελίδες και τροφοδοσίες RSS, μπορούμε να βελτιώσουμε τον πίνακα. Έχετε την επιλογή να δημιουργήσετε μια συνάρτηση PHP για να πιέσετε δεδομένα συσσωματωμένων συστοιχιών που μπορεί να είναι λίγο πολύ περίπλοκα. Θα μπορούσαμε επίσης να χωρίσουμε τα μπλοκ δεδομένων με κόμματα, συμπεριφέροντας ως ξεχωριστές οντότητες στον πίνακα. Ανατρέξτε στον ενημερωμένο κώδικα που γράψατε και πάλι στο αρχείο λειτουργιών functions.php.

    συνάρτηση generate_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("συγγραφέας / ([^ /] +) /?" => "index.php? author_name =". /? ([0-9] 1,) /? "=>" Index.php? Author_name = ".wp_rewrite-> preg_index (1). "συγγραφέας / ([[^ /] +) / (feed | rdf | rss | rss2 | atom) /" ">" index.php "όνομα_υποδοχής =" $ wp_rewrite-> preg_index (1). $ wp_rewrite-> preg_index (2), "συγγραφέας / ([^ /] +) / feed / (feed | rdf | rss | rss2 | atom) /?" => "index.php? author_name = > preg_index (1). "& feed =". $ wp_rewrite-> preg_index (2)); $ wp_rewrite-> κανόνες = $ new_rules + $ wp_rewrite-> κανόνες?  

    Απλά θυμηθείτε ότι καμία από αυτές τις μεθόδους δεν θα λειτουργήσει παρά μόνο αφού έχετε ξεκαθαρίσει τους αρχικούς κανόνες επανεγγραφής. Θα πρέπει να το κάνετε αυτό κάθε φορά που κάνετε αλλαγές σε αυτές τις λειτουργίες, αλλά στη συνέχεια οι νέοι κανόνες σας θα κολλήσουν επ 'αόριστον.

    Ξεπλύνετε τους κανόνες αναθεώρησης

    Κάθε φορά που κάνετε μια ενημέρωση του κώδικα επανεγγραφής URL, οι αλλαγές δεν εφαρμόζονται αμέσως. Θα πρέπει να ξεπλύνετε τους κανόνες .htaccess για να ξαναγράψετε τον νέο κωδικό σας. Ωστόσο, η εκτέλεση αυτού σε κάθε σελίδα init είναι εξαιρετικά σπάταλη καθώς γράφει στη βάση δεδομένων και ανακατεύει σκληρά το αρχείο .htaccess.

    Μια καλύτερη μέθοδος είναι να αποκτήσετε πρόσβαση στη σελίδα permalinks στον πίνακα διαχείρισης και να αποθηκεύσετε ξανά τις αλλαγές. Αυτό καλεί πάντοτε ένα flush_rewrite_rules ώστε να μην χρειάζεται να ανησυχείτε για τους χρήστες στο frontend που αντιμετωπίζουν προβλήματα φόρτωσης. Απαιτείται μόνο ένας χρόνος για να αποθηκευτεί ξανά η σελίδα και να ενημερωθούν όλοι οι κανόνες στο σύστημά σας. Αλλά αν αυτό δεν λειτουργεί, μπορείτε να δοκιμάσετε να καλέσετε $ wp_rewrite-> flush_rules ();

    Χρησιμοποιώντας κανόνες που δεν είναι WP

    μεσα στην $ wp_rewrite class έχουμε πρόσβαση σε δεκάδες ιδιότητες. Μία από τις πιο σημαντικές επιλογές είναι $ wp_rewrite-> non_wp_rules το οποίο συλλέγει μια σειρά ανακατευθύνσεων που δεν παίζουν το αρχείο index.php.

    Αυτό χρησιμοποιείται συνήθως στην ανάπτυξη του plugin WordPress. Μπορείτε να πιέσετε έναν συγκεκριμένο προσαρμοσμένο τύπο URL (όπως / ημερολόγιο / Ιουνίου-2012 /) στο πίσω μέρος της ιστοσελίδας σας (/wp-content/plugins/calendarplug/myscript.php). Αλλά φυσικά υπάρχουν και άλλες χρήσεις για αυτή τη συσσωρευτική σειρά προσαρμοσμένων κανόνων αναγραφής, εκτός από τις προσθήκες. Έχω δώσει ένα εξαιρετικό παράδειγμα στο παρακάτω πλαίσιο.

    Κάλυψη των Αρχείων Θέματός σας

    Αυτή είναι μια συνηθισμένη πρόταση που βλέπω συχνά στους πίνακες συζήτησης του WordPress. Στην ιδανική περίπτωση θα θέλαμε να αναφερθούμε σε ορισμένα αρχεία μέσα στο / wp-περιεχόμενο / θέματα / mytheme / φάκελο με πιο κομψό URL. Παρατηρήστε ότι αυτό θα απαιτήσει ένα διαφορετικό σύνολο WordPress ξαναγράψει για να αλλάξετε τη δομή καταλόγου.

    Το εσωτερικό σύστημα επανεγγραφής του WordPress ωθεί πάντα το περιεχόμενο σε ένα μόνο αρχείο δρομολόγησης. Στην προεπιλεγμένη περίπτωση, χρησιμοποιούμε το index.php μαζί με τυχόν επιπλέον δεδομένα συμβολοσειράς ερωτήματος. Αλλά για την απόκρυψη του τυπικού καταλόγου προτύπων (/ wp-περιεχόμενο / θέματα / mytheme / *) θα χρειαστεί να εμφανιστούν πολλά διαφορετικά αρχεία.

    add_action ('generate_rewrite_rules', 'themes_dir_add_rewrites'). λειτουργία themes_dir_add_rewrites () $ theme_name = επόμενο (explode ('/ themes /', get_stylesheet_directory ())); παγκόσμιο $ wp_rewrite; $ new_non_wp_rules = array ('css /(.*)' => 'wp-content / themes /' $ theme_name '/ css / $ 1', 'js /(**)' => ' / '/ images / wordpress-urls-rewrite' / '.' / js / $ 1 ',' / $ 1 ',); $ wp_rewrite-> non_wp_rules + = $ new_non_wp_rules;  

    Έχω γράψει μια νέα λειτουργία themes_dir_add_rewrites () για να τραβήξετε όλο το σημαντικό περιεχόμενο από αυτές τις μεγαλύτερες διευθύνσεις URL και να τις ανακατευθύνετε στο backend. Παρατηρήστε ότι χρησιμοποιούμε αυτήν την άλλη μυστηριώδη ιδιότητα της κλάσης $ wp_rewrite που ονομάζεται non_wp_rules. Σύμφωνα με τα έγγραφα, αυτοί είναι κανόνες που δεν κατευθύνονται στο αρχείο index.php του WP και θα αντιμετωπιστούν στο τέλος του διακομιστή.

    Αυτό που είναι τόσο μεγάλο για αυτούς τους κανόνες που δεν είναι WP είναι ότι μπορείτε ακόμα να διαχειριστείτε τη μέθοδο των παλαιότερων διευθύνσεων URL αρκετά εύκολα. Δεν υπάρχει τίποτα που να σας εμποδίζει να συνδέσετε:

    /wp-content/themes/mytheme/images/wordpress-urls-rewrite/logo.jpg.

    Αλλά φαίνεται πολύ πιο όμορφο αν μπορείτε να αναφέρετε:

    /images/wordpress-urls-rewrite/logo.jpg αντι αυτου.

    Χρήσιμα εργαλεία και πρόσθετα

    Υπάρχουν μερικά μόνο εργαλεία που μπορείτε να χρησιμοποιήσετε εάν είστε κολλημένοι με την κωδικοποίηση των δικών σας πολύμορφων διευθύνσεων URL. Η διαδικασία είναι πολύ δύσκολο να κατανοηθεί, οπότε μην αποθαρρύνεστε αν αγωνίζεστε για μερικές εβδομάδες. Αισθάνομαι ότι το περιεχόμενο θα γίνει ευκολότερο καθώς περνάτε περισσότερο χρόνο στην εξάσκηση.

    Αλλά για να ξεκινήσετε ελέγξτε μερικά από αυτά τα πρακτικά εργαλεία επανεγγραφής & plugins. Πιθανότατα δεν θα χρειαστείτε όλα αυτά, αλλά είναι υπέροχο να βρείτε μια τόσο μεγάλη βάση προγραμματιστών που εργάζεται γύρω από το WP ξαναγράψει.

    Αναλυτής επανεξέτασης Monkeyman

    Όταν το πρώτο άλμα σε κανόνες αναδιατύπωσης αυτό το plugin είναι ένα must-have. Δεν αλλάζει κανένας κανένας από τους κανόνες για τον ιστότοπό σας - απλώς σας επιτρέπει να δοκιμάσετε τον κώδικα και να δείτε ποιες ανακατευθύνσεις πηγαίνουν σε ποιες σελίδες. Θα λειτουργήσει ακόμη και για τη δοκιμή προσαρμοσμένων μεταβλητών ερωτήματος για τυχόν προσαρμοσμένους τύπους δημοσιεύσεων.

    AskApache RewriteRules Viewer

    Αυτό είναι παρόμοιο με το plugin παραπάνω εκτός από το ότι δεν σας επιτρέπει να δοκιμάσετε τους δικούς σας κανόνες. Αντίθετα, αυτό το πρόσθετο θα εμφανίσει όλους τους προεπιλεγμένους κανόνες WP του ιστότοπού σας και πού ανακατευθύνουν. Αυτό θα περιλαμβάνει όλες τις κύριες ιδιότητες του $ wp_rewrite όπως τις ρυθμίσεις permalink σας και τις βάσεις σελίδας / κατηγορίας / ετικετών.

    Έλεγχος WP htaccess

    Εδώ έχετε ένα διαφορετικό σύνολο κανόνων για την πραγματοποίηση ανακατευθύνσεων νέων σελίδων. Το plugin διαθέτει το δικό του διαχειριστικό πλαίσιο όπου μπορείτε να επεξεργάζεστε μεταβλητές όπως η βάση των δημιουργών σας, βάσεις σελίδων και ακόμη και να προσθέσετε τους δικούς σας προσαρμοσμένους κανόνες .htaccess.

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

    Επαναλάβετε τη δοκιμή κανόνα

    Αυτό στην πραγματικότητα δεν είναι ένα WordPress plugin, αλλά είναι σίγουρα ένα πρακτικό εργαλείο για να κρατήσει στο αρχείο. Μπορείτε να αντιγράψετε τους κανόνες αναθεώρησης και να τις δοκιμάσετε για τον ιστότοπό σας χωρίς να επεξεργαστείτε ποτέ το αρχείο .htaccess. Αυτή είναι η τέλεια μέθοδος για την αφαίρεση σφαλμάτων από τη σύνταξη σας πριν ξεκινήσετε ζωντανά στον Ιστό.

    DW ReWrite

    Το DW Rewrite είναι ένα πολύ απλό plugin που δημιουργεί 3 μοναδικά ωραία URLs αμέσως μετά την εγκατάσταση. Από προεπιλογή, θα αλλάξει οι συνδέσεις διαχείρισης, σύνδεσης και εγγραφής /διαχειριστής, /Σύνδεση, και /κανω ΕΓΓΡΑΦΗ αντίστοιχα.

    Αυτό μπορεί να είναι υπέροχο εάν χρειάζεστε μια γρήγορη επιδιόρθωση για ένα blog που διαθέτει πολλούς συγγραφείς. Θα κρύψει συγκεκριμένα τον ενοχλητικά περίπλοκο σύνδεσμο εγγραφής WordPress (/wp-login.php?action=register).

    συμπέρασμα

    Ελπίζω ότι αυτό το σεμινάριο μπορεί να προσφέρει μερικά παραδείγματα για να σκεφτείτε ότι ξαναγράφετε το WordPress. Το CMS είναι πολύ δημοφιλές και οι προγραμματιστές εξακολουθούν να παράγουν νέα χαρακτηριστικά κάθε μέρα. Η προσαρμογή των δικών σας διευθύνσεων URL είναι ένα τεράστιο κομμάτι λειτουργικότητας που βασίζεται στους χρήστες. Παρέχει στον ιστότοπό σας τη δική του μοναδική παρουσία και επωνυμία σε σύγκριση με τις προεπιλεγμένες επιλογές.

    Εάν αντιμετωπίζετε προβλήματα με τους κανόνες αναθεώρησης, δεν θα πρέπει ποτέ να είναι δύσκολο να αναιρέσετε τις ζημιές. Απλά με τη διαγραφή του κώδικα λειτουργίας και την εκκαθάριση των κανόνων .htaccess, φαίνεται ότι δεν έχει αλλάξει τίποτα. Να είστε βέβαιος να ελέγξετε έξω κάποια άλλα παρόμοια άρθρα που μπορείτε να βρείτε σχετικά με το θέμα. Και αν έχετε οποιεσδήποτε ερωτήσεις ή σχόλια, μπορείτε να τα μοιραστείτε μαζί μας στην περιοχή συζήτησης μετά.