Αρχική σελίδα » WordPress » 15 Χρήσιμες λειτουργίες του WordPress Όλοι οι προγραμματιστές πρέπει να ξέρουν

    15 Χρήσιμες λειτουργίες του WordPress Όλοι οι προγραμματιστές πρέπει να ξέρουν

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

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

    antispambot ()

    Παίρνω συνήθως μερικά φρύδια με αυτό, φαίνεται να είναι μια από τις πιο καλά κρυμμένες λειτουργίες στο codebase. antispambot () αντικαθιστά χαρακτήρες με οντότητες HTML που είναι ένας τρόπος να μάσκα διευθύνσεις ηλεκτρονικού ταχυδρομείου από κακό ξύστρα.

     $ email = '[email protected]'; echo 'Μπορείτε να επικοινωνήσετε μαζί μου στο'. antispambot ($ email). ' οποτεδήποτε'. 

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

    human_time_diff ()

    Όταν γνώρισα για πρώτη φορά σχετικά με αυτό το καθήκον περίπου πριν από ένα χρόνο σκέφτηκα ότι πρέπει να ήταν μια πρόσφατη προσθήκη την οποία αγνοήσαμε σε έναν changelog. ΟΧΙ ακριβως…

    Αυτή η λειτουργία - η οποία εξάγει τη διαφορά μεταξύ δύο χρονικών σημείων - είναι από την έκδοση 1.5 (δηλαδή στις 17 Φεβρουαρίου 2018!).

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

     echo 'Η δημοσίευση αυτή δημοσιεύτηκε'. human_time_diff (get_the_time ('U'), current_time ('timestamp')). 'πριν'; 

    get_post_meta ()

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

     $ all_meta = get_post_meta (14). 

    Ακόμη και αν αρπάξετε μόνο τα δεδομένα για ένα μόνο κλειδί, όλα τα postmeta τραβιέται ούτως ή άλλως.

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

    wp_upload_bits ()

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

     $ upload = wp_upload_bits ($ αρχείο ['όνομα'], null, file_get_contents ($ file ['tmp_name'])); 

    Υπάρχει κάποια εξήγηση για αυτό: η πρώτη παράμετρος είναι το όνομα του αρχείου. Το δεύτερο υποτιμάται, οπότε θα πρέπει να τεθεί σε null (eyeroll στη συνεκτικότητα WordPress). Η τρίτη παράμετρος είναι το πραγματικό περιεχόμενο του αρχείου.

    get_post_field ()

    Στο παρελθόν, είδα αρκετά παραδείγματα, όπου κάποιος έγραψε ένα βρόχο για να πάρει μια απαρίθμηση σχολίων για μια θέση ή έγραψε ένα ειδικό ερώτημα βάσης δεδομένων για αυτό. Δεν τα χρειάζεστε, ό, τι χρειάζεστε είναι get_post_field (). Αυτή η λειτουργία ανακτά την τιμή ενός μόνο πεδίου για μία μόνο θέση στη βάση δεδομένων. Ας πάρουμε ένα σχόλιο μετράνε!

     Αυτή η ανάρτηση έχει  σχόλια. 

    wpautop ()

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

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

     

    Τι λένε οι χρήστες μας

    wp_is_mobile ()

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

      Επισκεφτείτε τον ιστότοπό μας στην επιφάνεια εργασίας σας για μια πλουσιότερη εμπειρία χρήστη  

    wp_redirect ()

    Το τελευταίο παράδειγμα δείχνει μια άλλη καθαρή λειτουργία: wp_redirect (). Αυτό θα πρέπει να χρησιμοποιηθεί στη θέση του native PHP επί κεφαλής() λειτουργία. Η λειτουργία ανακατεύθυνσης WordPress σας επιτρέπει να ορίστε μια διεύθυνση URL για την ανακατεύθυνση και, επίσης, ορίστε έναν κωδικό κατάστασης, εξαιρετικό για το χειρισμό μόνιμων ανακατευθύνσεων επίσης.

     // Για μια διεύθυνση URL που δεν χρησιμοποιείται πλέον wp_redirect ('http://website.com/new-url/', 301). 

    paginate_links ()

    Υποθέτω ότι αυτή η λειτουργία οφείλει την αφάνεια της εν μέρει στη δημοτικότητα του plugin WP-PageNavi. Από προεπιλογή WordPress εμφανίζει τους προηγούμενους / επόμενους συνδέσμους στο τέλος της ανάρτησής σας. WP-PageNavi αντικαθιστά αυτό με αριθμούς σελίδων.

    Αυτό μπορεί πράγματι να γίνει με λίγη δουλειά χρησιμοποιώντας το paginate_links () λειτουργίες. Έχει αρκετές παραμέτρους γι 'αυτό συνιστούμε να ρίξουμε μια ματιά στα έγγραφα.

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

     παγκόσμιο $ wp_query; $ big = 999999999; // χρειάζονται ένα απίθανο ακέραιο echo paginate_links (array ('base' => str_replace ($ big, '% #%', esc_url (get_pagenum_link ($ big))), 'format' => , 'τρέχον' => max (1, get_query_var ('σελίδες')), 'σύνολο' => $ wp_query-> max_num_pages));

    wp_die ()

    Αυτή η λειτουργία συμπληρώνει την PHP καλούπι() λειτουργία. Η διαφορά είναι ότι αυτή η λειτουργία θα εμφανίσει ένα WordPress στυλ HTML αντί για απλό κείμενο. Μπορείτε να χρησιμοποιήσετε αυτή τη λειτουργία για να σταματήσετε την εκτέλεση PHP. Μπορείτε να προσθέσετε το μήνυμα, τον τίτλο και τα πρόσθετα επιχειρήματα που θα εμφανιστούν, για παράδειγμα:

     wp_die ("Ωχ, δεν έχετε πρόσβαση στο", "Το Permission Denied"). 

    has_block ()

    Στην έκδοση 5.0, το WordPress εισήγαγε έναν επεξεργαστή βασισμένο σε block με κωδικό όνομα Gutenberg. Αυτή η λειτουργία θα προσδιορίσει αν το περιεχόμενο περιέχει ένα Gutenberg, το ίδιο με το has_shortcode () λειτουργία. Θα επιστρέψει αληθής αν το περιεχόμενο περιέχει ένα μπλοκ, ή ψευδής αν δεν το κάνει.

    wp_set_script_translations ()

    Δεδομένου ότι πολλά μέρη του διεπαφή χρήστη του WordPress πρόκειται να μεταφερθούν στο JavaScript, χρειάζονται έναν βολικό τρόπο για την εγγραφή μεταφράσιμων κειμένων στο JavaScript, το οποίο θα μπορούσε να αναλύσει και να καταλάβει το WordPress. Χρησιμοποιήστε αυτή τη λειτουργία για να ορίσετε μεταφρασμένες συμβολοσειρές για τα σενάρια σας. Παρακάτω είναι ένα παράδειγμα:

    wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain').

    register_block_type ()

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

    register_block_type ('my-plugin / new-block', array ('title' => 'New Block', 'icon' => 'megaphone', ' ,));

    rest_do_request ()

    Αυτή η λειτουργία σας επιτρέπει να πραγματοποιήσετε μια κλήση στα τελικά σημεία του WordPress REST API μέσω PHP. Πολύ χρήσιμο όταν χρειάζεται να ανακτήσετε μια έξοδο από το API REST για να επεξεργαστείτε ότι θα επεξεργαστείτε περαιτέρω στην πλευρά της PHP αντί για την πλευρά του browser (front-end).

    $ request = new WP_REST_Request ('GET', '/ wp / v2 / posts'). $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')). $ response = rest_do_request (αίτημα $); $ data = 200 === $ απάντηση-> get_status (); $ απάντηση-> get_data (): [];

    rest_preload_api_request ()

    Κατά την οικοδόμηση ενός JavaScript-heavy UI στο WordPress τυπικά χρειάζεται ένα σύνολο αρχικών δεδομένων που φορτώνονται στο εσωτερικό της σελίδας. Αυτή είναι η λειτουργία που θα σας επιτρέψει να το κάνετε. Αυτή η λειτουργία προορίζεται να χρησιμοποιηθεί σε συνδυασμό με το array_reduce, για παράδειγμα.

     // Προφόρτωση κοινών δεδομένων. $ preload_paths = array ('/', '/ wp / v2 / types? context = επεξεργασία', '/ wp / v2 / taxonomies? per_page = -1 & context = ,); preload_data = array_reduce ($ preload_paths, 'rest_preload_api_request', array ()); wp_add_inline_script ('wp-api-fetch', sprintf ('wp.apiFetch.use (wp.apiFetch.createPreloadingMiddleware (% s))', wp_json_encode ($ preload_data), 'μετά'); 

    συμπέρασμα

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

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