Ως σχεδιαστές ιστοσελίδων, είναι ενάντια στη φύση μας να περιορίζουμε την πρόσβαση στον κώδικα μας. Έχουμε διδάξει να μεγιστοποιήσουμε τη συμβατότητα των ιστοτόπων μας και να προσπαθήσουμε για συμβατότητα προς τα πίσω όπου είναι δυνατόν. για τη δημιουργία προοδευτικά ενισχυμένων και χαλαρά υποβαθμισμένων τοποθεσιών. Αν μπορούμε να το κάνουμε να λειτουργήσει στο IE1, αυτό δεν είναι κακό ...
Το πρόβλημα, τουλάχιστον για τους προγραμματιστές του WordPress, είναι ότι το WordPress είναι ένα τέρας. θα σας καταπιεί και το υπέροχο μικρό σας έργο, αν το αφήσετε.
Όταν δημιουργείτε ένα θέμα WordPress, είτε ως εργασία για έναν συγκεκριμένο πελάτη είτε για μεταπώληση σε μία από τις πολλές αγορές WordPress, ο στόχος σας δεν μπορεί ποτέ να είναι να καλύψει όλα όσα υπήρξε ποτέ μέρος του WordPress. Αντ 'αυτού, ο στόχος σας θα πρέπει να είναι να χρησιμοποιήσετε τις λειτουργίες, τις λειτουργίες και τα φίλτρα του κλειδιού με τον καλύτερο τρόπο για να μεγιστοποιήσετε την τρέχουσα κωδικοσελίδα.
Ως επαγγελματίας, ο χρόνος σας είναι χρήμα, τόσο περισσότερο δαπανούν για την ανάπτυξη σας το λιγότερο κέρδος που κάνετε? είναι μια απλή εξίσωση. Το μέγεθος του WordPress σημαίνει ότι μπορείτε εύκολα να περάσετε το 80% του χρόνου σας σε 20% της αγοράς. Πολύ καλύτερα να δαπανήσει το 80% του χρόνου που τροφοδοτούν το 80% της αγοράς. Όσον αφορά το ποιοτικό προϊόν και το δικό σας τραπεζικό ισοζύγιο, είναι η πιο σίγουρη προσέγγιση.
Σε 14 βασικές λειτουργίες του WordPress για την ανάπτυξη θεμάτων με άλματα πέρασα μερικές από τις λειτουργίες που, χωρίς να αποτύχουμε, συμπεριλαμβάνω τις λειτουργίες του. Σε αυτό το άρθρο, καλύπτουμε μια άλλη κρίσιμη λειτουργία που πρέπει να πάει στη λίστα των βασικών λειτουργιών του WordPress. Θα σας εξοικονομήσει τόσο κεφάλι, και την καρδιά, πόνους κάτω από το δρόμο.
Όταν μια εκμετάλλευση που μπορεί να αποφευχθεί φέρνει στο χώρο του πελάτη σας (που τρέχει στο θέμα σας) μέχρι τα γόνατά του, ποιος πιστεύετε ότι θα καλέσει; Επιτρέψτε μου να σας σώσω την εικασία: εσείς, m'kay; Δεν πειράζει ότι ό, τι προκαλεί το πρόβλημα δεν είναι καθόλου λάθος σας, στον πελάτη, έχει μόνο σημασία ότι είστε ο πιό στενός σύνδεσμος με το πιθανό πρόβλημα. Το τελευταίο πράγμα που θυμούνται είναι να σας προσφέρουν να δημιουργήσετε ένα νέο θέμα γι 'αυτούς.
Αν κατά την επιθεώρηση διαπιστώσετε ότι ο ιστότοπος του πελάτη εξακολουθεί να λειτουργεί με το WordPress παλαιότερο από την τρέχουσα σταθερή έκδοση, πάρτε μερικά δευτερόλεπτα και χτυπήστε τον εαυτό σας απέναντι στο πρόσωπο: πρώτα το αριστερό μάγουλο και στη συνέχεια το δεξιό μάγουλο. Το θέμα σας δεν πρέπει να τους επιτρέψει να το κάνουν!
Εάν έχετε δώσει προσοχή, από την έκδοση 3.6 του WordPress, θα έχετε αρχίσει να παρατηρείτε μια λειτουργία αρκετά ψηλά στις λειτουργίες default.php του περιορισμού που περιορίζουν τη χρήση του προεπιλεγμένου θέματος σε εκδόσεις του WP νεότερη από 3.6. Στην πραγματικότητα είναι η δεύτερη συνάρτηση που ορίζεται στις λειτουργίες twentyteen του.
Αυτή η λειτουργία μοιάζει με αυτό:
/*** Twenty Fourteen only works in WordPress 3.6 or later.*/if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {require get_template_directory() . '/inc/back-compat.php';}
Μας ενδιαφέρει το περιεχόμενο αυτού του αρχείου back-compat.php . Οι λειτουργίες που ορίζονται εκεί είναι εκείνες που ακολουθούμε για χρήση με τα δικά μας θέματα.
Σχεδόν δεν έχει σημασία ποια χαρακτηριστικά εφαρμόζετε αλλά αν είναι δυνατόν, περιορίστε τη χρήση των θεμάτων σας σε λογικά νέες εκδόσεις του WordPress. Αυτό θα διασφαλίσει ότι ο τελικός χρήστης θα ενημερώσει την εγκατάστασή τους (ό, τι καλύτερο από την άποψη της ασφάλειας) και θα διασφαλίσει ότι ξοδεύετε το μεγαλύτερο μέρος του χρόνου ανάπτυξης στην πλειοψηφία των χρηστών.
Για να το επιτύχουμε αυτό, χρησιμοποιούμε τη συνάρτηση PHP version_compare () για να ελέγξουμε την τρέχουσα έκδοση του WordPress σε σχέση με την πιο πρόσφατη διαθέσιμη έκδοση, βεβαιώνοντας ότι η πιο πρόσφατη εγκατεστημένη έκδοση δεν είναι μικρότερη από το 3.6 - δημιουργήστε τη δική σας επιλογή σε ποια έκδοση για δοκιμή, 3.6 δεν αποτελεί σύσταση, απλώς ένα παράδειγμα. Αυτή η λειτουργία μοιάζει με αυτό:
if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {// do (or do not) somethingfunction butter_never_get_old() {switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );unset( $_GET['activated'] );add_action( 'admin_notices', 'butter_step_your_game_up' ); // we add some admin notices here (we haven't defined this function yet)}add_action( 'after_switch_theme', 'butter_never_get_old' );}
Αυτό που κάνει αυτή η λειτουργία είναι να ορίσετε μια συνάρτηση δράσης butter_never_get_old () που θα εκτελείται μόνο όταν καλείται η βασική συνάρτηση after_switch_theme () . Μέχρι στιγμής, η συνάρτηση butter_never_get_old () , η οποία βρίσκεται μέσα στον έλεγχο της έκδοσής μας, κάνει τα εξής:
Στη συνέχεια, πρέπει να ορίσουμε τη συνάρτηση butter_step_your_game_up () , η οποία εκτυπώνει τις ειδοποιήσεις διαχειριστή μας, αν κάτι πρέπει να πάει στραβά, πράγμα που φανερώνει ότι η έκδοση WP είναι παλαιότερη από όσο θα θέλαμε.
function butter_step_your_game_up() {$update_message = sprintf( __( 'This theme requires WordPress version 3.6 or newer. You're currently using version %s. Please upgrade.', 'butter' ), $GLOBALS['wp_version'] );printf( '%s
', $update_message );}
Η παραπάνω συνάρτηση butter_step_your_game_up () ορίζει τη μεταβλητή συμβολοσειρά μηνύματος σφάλματος στη μεταβλητή $ update_message όπως ορίζεται (αυτό το θέμα απαιτεί ... κλπ), το οποίο εκτυπώνεται και εμφανίζεται στον χρήστη (από την προηγούμενη λειτουργία butter_never_get_old () ) και οπτικά, μέσα ένα div με την κατηγορία 'λάθος'. Αυτό το μήνυμα, μπορείτε στη συνέχεια στυλ όπως επιθυμείτε.
Έτσι, όλοι είπαν, η λειτουργία μας πρέπει να μοιάζει με αυτό:
if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {// This function deactivates our newly activated theme if WP isn't newer than 3.6// It then re/activates the default themefunction butter_never_get_old() {switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );unset( $_GET['activated'] );add_action( 'admin_notices', 'butter_step_your_game_up' );}add_action( 'after_switch_theme', 'butter_never_get_old' );// This function, called from within the above function// outputs the relevant message that nudges the theme's user// to upgradefunction butter_step_your_game_up() {$update_message = sprintf( __( 'This theme requires WordPress version 3.6 or newer. You are currently using version %s. Please upgrade!', 'butter' ), $GLOBALS['wp_version'] );printf( '%s
', $update_message );} }}
Με αυτό που εφαρμόζετε, διασφαλίζετε ότι το θέμα σας δεν μπορεί να ενεργοποιηθεί σε εγκαταστάσεις WordPress παλαιότερες από την έκδοση 3.6.
Στο μέτρο του δυνατού, θα πρέπει να διατηρείτε τα functions.php καθαρά. Θα πρέπει να είναι καθαρό, με την έννοια ότι θα πρέπει να μπορείτε να σαρώσετε γρήγορα και να διακρίνετε αμέσως τι κάνει κάθε λειτουργία. Για το σκοπό αυτό, ίσως να θέλουμε να μετακινήσουμε τη λειτουργία μας σε ένα φάκελο που περιλαμβάνει.
Αν δεν το έχετε ήδη, δημιουργήστε ένα φάκελο και ονομάστε το 'inc' μέσα στον κατάλογο του θέματός σας. Στο εσωτερικό του, δημιουργήστε ένα αρχείο php και ονομάστε το back-compat.php . Αντιγράψτε και επικολλήστε τα περιεχόμενα της συνάρτησης που μόλις δημιουργήσαμε, αφήνοντας μόνο το version_compare () στις λειτουργίες.php:
if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {require get_template_directory() . '/inc/back-compat.php';}
Μέσα στο αρχείο /inc/back-compat.php , επικολλήστε τις λειτουργίες που ορίσαμε νωρίτερα:
function butter_never_get_old() {switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );unset( $_GET['activated'] );add_action( 'admin_notices', 'butter_step_your_game_up' );}add_action( 'after_switch_theme', 'butter_never_get_old' );function butter_step_your_game_up() {$update_message = sprintf( __( 'This theme requires WordPress version 3.6 or newer. You are currently using version %s. Please upgrade!', 'butter' ), $GLOBALS['wp_version'] );printf( '%s
', $update_message );}
Είναι πάντα μια σκληρή πώληση για να πει ένα καλό προγραμματιστή ότι πρέπει να περιορίσουν τη συμβατότητα του κώδικα τους. Αλλά το τεράστιο μέγεθος του κώδικα βάσης WordPress, ειδικά όταν εστιάζετε στην οπίσθια συμβατότητα, περιορίζει το πεδίο εφαρμογής του θέματος σας σε μια πρακτική αναγκαιότητα. Το ίδιο το WordPress θα πρέπει να τονίσει την εγκυρότητά του.
Και τώρα, απελευθερωμένος από τα σταθερά εμπόδια που παρουσιάζονται από τον ξεπερασμένο κώδικα, μπορείτε να εστιάσετε τις ενέργειές σας όπου ανήκουν: στην αξιοποίηση της τρομερής δύναμης του WordPress.
Προτεινόμενη εικόνα / μικρογραφία, χρησιμοποιεί εικόνα συμβατότητας μέσω Shutterstock.