15 Hyödyllisiä WordPress-toimintoja Kaikkien kehittäjien tulisi tietää
WordPress on täynnä hyviä toimintoja, joita kehittäjät voivat käyttää. Voimme vetää postiluettelot ohuesta ilmasta, manipuloida lähes kaikkea heistä, tarttua mihin tahansa käyttäjään, jota haluamme, ja näyttää heidän sosiaalisen mediansa yhteydet.
On kuitenkin olemassa muutamia toimintoja, jotka tuntuvat unohtamatta tuntemattomista syistä. Olen koodannut WordPressia noin kahdeksan vuotta ja joskus löydän jotain uutta! Katsokaamme joitakin minun suosikki unohdetut toiminnot ja opi käyttämään niitä matkan varrella.
antispambot ()
En yleensä nosta muutamia kulmakarvoja tämän kanssa, se näyttää olevan yksi parhaiten piilotetuista toiminnoista koodivaiheessa.
korvaa merkit HTML-yksiköillä, jotka ovat yksi tapa peitä sähköpostiosoitteet pahoista kaapimista.antispambot ()
$ email = '[email protected]'; echo 'Voit ottaa minuun yhteyttä'. antispambot ($ email). ' milloin vain'.
Vaikka tämä on hyödyllinen tidbit, se on myös esimerkki siitä, miksi jotkut ihmiset arvostelevat WordPressia - tämä on kauheasti nimetty toiminto. Lukemalla funktion nimeä sinulla ei ole aavistustakaan siitä, mitä se tekee.
human_time_diff ()
Kun sain ensimmäisen kerran tietää tästä toiminnasta noin vuosi sitten, ajattelin, että sen on pitänyt olla viime aikoina lisätty, jota en huomannut muutoksissa. Ei aivan…
Tämä toiminto, joka tuottaa eron kahden aikaleiman välillä, on ollut versiossa 1.5 (se on 17. helmikuuta 2018!).
Seuraava suuri koodi, jonka lainoin koodista, osoittaa, kuinka kauan sitten nykyinen viesti julkaistiin. Se käyttää julkaista ensimmäisenä päivänä viesti ja nykyinen päivämäärä.
echo "Tämä viesti julkaistiin". human_time_diff (get_the_time ('U'), current_time ('aikaleima')). "sitten";
get_post_meta ()
Minulla on täällä, tiedän, että tämä on hyvin käytetty toiminto, mutta miten se toimii, ei ole niin yleistä tietoa. Ensinnäkin jättämällä pois toisen ja kolmannen parametrin voit vedä kaikki viestin metatiedot.
$ all_meta = get_post_meta (14);
Vaikka otat vain yhden avaimen tiedot, kaikki postmeta vedetään joka tapauksessa.
Syy on itse asiassa melko looginen. Metatietoja käytetään useissa paikoissa. Jos
kysyy tietokannasta joka kerta, kun sitä käytettiin, niin päädyttäisimme liian moniin kyselyihin. Jos vedät metatietoja, se tallentaa sen kaikki kätevästi ja käyttää välimuistissa olevia arvoja kaikkiin seuraaviin metatietojen hakuihin.get_post_meta ()
wp_upload_bits ()
Tämä toiminto on suora tiedoston lataustoiminto. Vaikka se ei siirrä tiedostoa latauskansioon ja lisää sen WordPress-median osaan, se on erittäin kätevä ja loput voit tehdä aina
toimia.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['name'], null, file_get_contents ($ file ['tmp_name']));
Jotkin selitykset ovat käytettävissä: ensimmäinen parametri on tiedoston nimi. Toinen poistetaan, joten se olisi asetettava nollaan (eyeroll WordPressin johdonmukaisuudessa). Kolmas parametri on tiedoston todellinen sisältö.
get_post_field ()
Aiemmin olen nähnyt melko muutamia esimerkkejä, joissa joku kirjoitti silmukan kommentin laskemiseksi postitse tai kirjoitti sille tietokannan kyselyn. Sinun ei tarvitse niitä, mitä tarvitset
. Tämä toiminto noutaa yksittäisen kentän arvon yhdelle postille tietokannassa. Otetaanko kommentti!get_post_field ()
Tämä viesti on kommentit.
wpautop ()
Tämä toiminto on tullut hieman valokeilaan, mutta se on edelleen suhteellisen tuntematon. Se on samanlainen kuin PHP: n natiivi nl2br
vaan sen sijaan, että luotiin uusia rivejä kääri sisältösi kappaleisiin.
Tämä on hyödyllistä, jos sinulla on tekstilaatikko ja haluat varmistaa, että kun käyttäjät luovat kappaleita, joissa on kaksoislinja, ne näkyvät myös etupäässä.
Mitä käyttäjät sanovat
wp_is_mobile ()
Tämä osuvasti nimetty toiminto tunnistaa, kun käyttäjä on mobiililaitteessa ja voit näyttää sisällön vastaavasti. Koska kyseessä on ehdollinen tunniste, se palauttaa oikean tai väärän skenaarion mukaan.
Käy työpöydällä olevalla verkkosivustollamme, jotta saat käyttökokemuksen
wp_redirect ()
Viimeinen esimerkki näyttää toisen siistin toiminnon:
. Tätä olisi käytettävä PHP: n alkuperäisen sijasta wp_redirect ()
header ()
toimia. WordPress-uudelleenohjaustoiminnon avulla voit määritä URL-osoite uudelleen ja määritä myös tilakoodi, hyvin käsitellä myös pysyviä uudelleenohjauksia.
// URL-osoitteesta, jota ei enää käytetä wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
Lyön vetoa, että tämä toiminto johtuu osittain epäselvyydestään WP-PageNavi-laajennuksen suosiosta. Oletusarvoisesti WordPress näyttää edellisen tai seuraavan linkin postilistan lopussa. WP-PageNavi korvaa sen sivunumeroilla.
Tämä voidaan todella tehdä pienellä työllä käyttämällä
toiminnot. Siinä on melko muutamia parametreja, joten suosittelen kurkistusta asiakirjoista.paginate_links ()
Seuraava esimerkki koodista näyttää, miten voit lisätä sen oletuspiiriin, mutta sen lisääminen mukautettuihin silmukoihin ei ole paljon venytys.
maailmanlaajuinen $ wp_query; $ big = 999999999; // tarvitsee epätodennäköinen kokonaisluku echo paginate_links (array ('base' => str_replace ($ big, '% #%', esc_url (get_pagenum_link ($ big))), 'muoto' => '? sivu =% #%' , 'current' => max (1, get_query_var ('paged')), 'yhteensä' => $ wp_query-> max_num_pages));
wp_die ()
Tämä toiminto täydentää PHP: tä kuolla()
toimia. Erona on, että tämä toiminto näyttää WordPress-tyylisen HTML: n pelkän tekstin sijaan. Tämän toiminnon avulla voit lopettaa PHP: n suorittamisen. Voit lisätä näytettävän viestin, otsikon ja muita argumentteja, esimerkiksi:
wp_die ("Hups, sinulla ei ole pääsyä", "Lupa evätty");
has_block ()
Versiossa 5.0 WordPress esitteli lohkopohjaisen editorin, koodinimellä Gutenberg. Tämä toiminto tunnistaa, sisältääkö sisältö Gutenbergin, aivan samanlaisen kuin has_shortcode ()
toimia. Se palaa totta
jos sisältö sisältää lohkon, tai väärä
jos se ei ole.
wp_set_script_translations ()
Koska monet WordPress-käyttöliittymän osat siirtyvät JavaScriptiin, se tarvitsee kätevän tavan rekisteröidä kääntyviä tekstejä JavaScriptiin, jonka WordPress voisi jäsentää ja ymmärtää. Tämän toiminnon avulla voit määrittää käännettävät merkkijonot skripteillesi. Alla on esimerkki:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
Toinen merkittävä WordPress 5.0 -toiminto. Tämän toiminnon avulla voit rekisteröidä uuden lohkon uuteen WordPress-editoriin. Lohko näkyy uudessa editorissa ja lisää sen .
register_block_type ('my-plugin / new-block', array ('title' => 'New Block', 'icon' => 'megaphone', 'category' => 'widgetit', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
Tämän toiminnon avulla voit soittaa WordPress REST API: n päätepisteisiin PHP: n kautta. Hyvin hyödyllinen, kun haluat hakea REST-API: n lähdön prosessiin, jota käsitellään edelleen PHP-puolella selaimen (etupään) puolella.
$ request = new WP_REST_Request ('GET', "/ wp / v2 / posts"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ response = rest_do_request ($ request); $ data = 200 === $ vastaus-> get_status ()? $ response-> get_data (): [];
rest_preload_api_request ()
Kun rakennetaan JavaScript-raskaita käyttöliittymiä WordPressiin, tarvitaan tyypillisesti joukko alkuperäisiä tietoja, jotka on asetettu sivuille. Tämä on toiminto, jonka avulla voit tehdä niin. Tämä toiminto on tarkoitettu käytettäväksi array_reduce
, esimerkiksi.
// Lataus yhteiset tiedot. $ preload_paths = array ('/', '/ wp / v2 / type? - konteksti = muokkaa', '/ wp / v2 / taksonomiat? per_page = -1 & konteksti = muokkaa', '/ wp / v2 / teemat? status = aktiivinen' ,); 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)), 'sen jälkeen');
johtopäätös
Nämä ovat vain joitakin toimintoja, jotka näyttävät olevan vähemmän tunnettuja kuin loput. Löysin uuden suuren tehtävän noin kahden kuukauden välein, ja olen varma, että kehittäjäystäväni voivat yllättää meidät vielä enemmän.
Jos sinulla on suosikki epäselvä toiminto tai toiminto, joka olisi hyödyllinen, mutta ei ole käytettävissä, kerro meille kommenteistamme!