15 Noderīgas WordPress funkcijas Visiem izstrādātājiem ir jāzina
WordPress ir pilns ar lieliskām funkcijām, kas mums jāizmanto. Mēs varam izvilkt ziņu sarakstus no plānas gaisa, manipulēt gandrīz ar tiem, sagrābt jebkuru lietotāju, kuru mēs vēlamies, un attēlot savus sociālo mediju savienojumus..
Tomēr ir diezgan maz funkciju, kas, šķiet, nav ņemtas vērā nezināmu iemeslu dēļ. Es esmu kodējis ar WordPress aptuveni 8 gadus un reizēm es joprojām atrodu kaut ko jaunu! Apskatīsim dažas no manām iecienītākās aizmirstās funkcijas un uzziniet, kā tos izmantot ceļā.
antispambots ()
Ar šo vienu parasti uzbraucu dažas uzacis, šķiet, ka tā ir viena no visvairāk paslēptajām funkcijām koda bāzē.
aizstāj rakstzīmes ar HTML vienībām, kas ir viens no veidiem maskēt e-pasta adreses no ļaunajiem skrēperiem.antispambots ()
$ email = '[email protected]'; echo 'Jūs varat sazināties ar mani'. antispambot ($ email). "jebkurā laikā".
Lai gan tas ir noderīgs tidbīts, tas ir arī piemērs tam, kāpēc daži cilvēki kritizē WordPress - tā ir briesmīgi nosaukta funkcija. Lasot funkciju nosaukumu, jums nav ne jausmas, ko tas dara.
human_time_diff ()
Kad es pirmo reizi uzzināju par šo funkciju pirms gada, es domāju, ka tai bija jābūt nesenam papildinājumam, ko es ignorēju mainīšanā. Ne īsti…
Šī funkcija, kas rada atšķirību starp diviem laika zīmogiem, ir bijusi kopš 1.5. Versijas (tas ir 2018. gada 17. februārī!).
Sekojošais lielais fragments, ko es aizņēmu no kodeksa, parāda, cik sen bija publicēts pašreizējais ieraksts. Tas izmanto publicēt ziņojuma datumu kā pirmo argumentu un pašreizējais datums kā otrais.
echo "Šis ieraksts tika publicēts". human_time_diff (get_the_time ('U'), pašreizējais laiks ("timestamp")). ' pirms';
get_post_meta ()
Nāciet kopā ar mani šeit, es zinu, ka tā ir labi izmantota funkcija, tomēr tas, kā tā darbojas, ir ne tik izplatītas zināšanas. Pirmkārt, izlaižot otro un trešo parametru, ko varat velciet visus amata datus.
$ all_meta = get_post_meta (14);
Pat ja jūs saņemsiet tikai vienas atslēgas datus, tad visi postmeta tiek izvilkti.
Iemesls faktiski ir diezgan loģisks. Metadati tiek izmantoti vairākās vietās. Ja
vaicā datubāzei katru reizi, kad to izmantoja, mēs galu galā nonāktu pārāk daudz vaicājumu. Tā vietā, ja jūs velkat metadatus, tas viss tiek glabāts kešatmiņā un izmanto kešatmiņā saglabātās vērtības visos turpmākajos metadatu izguvumos.get_post_meta ()
wp_upload_bits ()
Šī funkcija ir taisna failu augšupielādes funkcija. Lai gan tas nepārvieto failu augšupielādes mapē un pievieno to WordPress multivides sadaļai, tas ir ļoti ērti, un jūs vienmēr varat izdarīt pārējo ar
funkciju.wp_insert_attachment ()
$ upload = wp_upload_bits ($ fails ['name'], null, file_get_contents ($ fails ['tmp_name']));
Tam ir zināms skaidrojums: pirmais parametrs ir faila nosaukums. Otrais ir nolietots, tāpēc tas ir jāiestata uz null (eyeroll pie WordPress konsekvences). Trešais parametrs ir faktiskais faila saturs.
get_post_field ()
Agrāk es redzēju diezgan maz piemēru, kad kāds uzrakstīja cilpu, lai saņemtu komentāru par ierakstu, vai uzrakstīja tam īpašu datubāzes vaicājumu. Jums tie nav nepieciešami
. Šī funkcija izgūst viena lauka vērtību vienai ziņai datu bāzē. Let's greifers komentāru skaits!get_post_field ()
Šim ziņojumam ir komentārus.
wpautop ()
Šī funkcija mazliet ir izcelta uzmanības centrā, taču tā joprojām ir relatīvi nezināma. Tas ir līdzīgs PHP dzimtam nl2br
bet tā vietā, lai radītu jaunas līnijas iesaiņo jūsu saturu punktos.
Tas ir noderīgi, ja jums ir teksta lodziņš un vēlaties pārliecināties, ka tad, kad lietotāji izveido punktus ar dubultu līniju pārtraukumiem, tie paliek redzami arī priekšējā daļā.
Ko mūsu lietotāji saka
wp_is_mobile ()
Šī trāpīgi nosaukta funkcija konstatē, kad lietotājs atrodas mobilajā ierīcē un ļauj attiecīgi attēlot saturu. Tā kā tas ir nosacīta atzīme, tā atgriež patiesu vai nepatiesu atkarībā no scenārija.
Apmeklējiet mūsu tīmekļa vietni savā darbvirsmā, lai iegūtu bagātāku lietotāja pieredzi
wp_redirect ()
Pēdējais piemērs parāda vēl vienu glītu funkciju:
. Tas būtu jāizmanto vietējās PHP vietā wp_redirect ()
galvene ()
funkciju. WordPress pārvirzīšanas funkcija ļauj jums iestatiet URL, lai pāradresētu, un iestatiet arī statusa kodu, lieliski piemēroti arī pastāvīgu novirzīšanu apstrādei.
// URL, kas vairs netiek lietots wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
Bet es varu likt, ka šī funkcija ir daļēji saistīta ar WP-PageNavi spraudņa popularitāti. Pēc noklusējuma WordPress parāda iepriekšējās / nākamās saites jūsu saraksta beigās. WP-PageNavi to aizstāj ar lappušu numuriem.
To var izdarīt ar nelielu darbu, izmantojot
funkcijas. Tam ir diezgan maz parametru, tāpēc es iesaku aplūkot dokumentāciju.paginate_links ()
Nākamais piemērs no kodeksa parāda, kā jūs varat pievienot to noklusējuma cilpai, bet to pievienošana pielāgotām cilpām nav daudz stiept.
globālā $ wp_query; $ big = 999999999; // ir nepieciešams maz ticams vesels skaitlis echo paginate_links (masīvs ('base' => str_replace ($ big,%%%, esc_url (get_pagenum_link ($ big))), 'formāts' => '? paged =% #%' , 'current' => max (1, get_query_var ('paged')), 'total' => $ wp_query-> max_num_pages));
wp_die ()
Šī funkcija papildina PHP mirst ()
funkciju. Atšķirība ir tā, ka šī funkcija parādīs WordPress veidotu HTML, nevis tikai vienkāršu tekstu. Šo funkciju var izmantot, lai apturētu PHP izpildi. Varat pievienot ziņojumu, nosaukumu un papildu argumentus, kas tiks parādīti, piemēram:
wp_die ("Hmm, jums nav piekļuves", "Atteikta atļauja");
has_block ()
5.0 versijā WordPress iepazīstināja ar bloka redaktoru, ar nosaukumu Gutenberg. Šī funkcija noteiks, vai saturs satur Gutenbergu, gluži tāpat kā has_shortcode ()
funkciju. Tas atgriezīsies taisnība
ja saturs satur bloku, vai nepatiesa
ja tā nav.
wp_set_script_translations ()
Tā kā daudzas WordPress lietotāja saskarnes daļas iet uz JavaScript, tai ir nepieciešams ērts veids, kā reģistrēt tulkojamus tekstus JavaScript, ko WordPress varētu analizēt un saprast. Izmantojiet šo funkciju, lai iestatītu tulkoto virknes jūsu skriptiem. Zemāk ir piemērs:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
Vēl viena svarīga funkcija programmā WordPress 5.0. Šī funkcija ļauj reģistrēt jaunu bloku jaunajā WordPress redaktorā. Jūsu bloks parādīsies jaunajā redaktorā un ievietos to .
register_block_type ('my-plugin / new-block', masīvs ('title' => 'New Block', 'icon' => 'megafons', 'kategorija' => 'logrīki', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
Šī funkcija ļauj jums piezvanīt uz WordPress REST API galapunktiem, izmantojot PHP. Diezgan noderīgi, ja nepieciešams, lai izgūtu izeju no REST API, lai apstrādātu to, ko tālāk apstrādāsiet PHP pusē, nevis pārlūkprogrammas (priekšējā) pusē.
$ request = new WP_REST_Request ('GET', "/ wp / v2 / posts"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ response = rest_do_request ($ pieprasījums); $ data = 200 === $ atbilde-> get_status ()? $ response-> get_data (): [];
rest_preload_api_request ()
Veidojot JavaScript-smago lietotāja interfeisu WordPress, parasti ir nepieciešama sākotnējo datu kopa, kas ir izdalīta lapā. Šī ir funkcija, kas ļaus jums to darīt. Šī funkcija ir paredzēta lietošanai kopā ar array_reduce
, piemēram.
// Kopējo datu ielādēšana pirms ielādes. $ preload_paths = masīvs ('/', '/ wp / v2 / tips? konteksts = rediģēt', '/ wp / v2 / taksonomijas? per_page = -1 & konteksts = rediģēt', '/ wp / v2 / tēmas? statuss = aktīvs' ,); preload_data = array_reduce ($ preload_paths, 'rest_preload_api_request', masīvs ()); wp_add_inline_script ('wp-api-fetch', sprintf ('wp.apiFetch.use (wp.apiFetch.createPreloadingMiddleware (% s));', wp_json_encode ($ preload_data)), 'pēc');
Secinājums
Šīs ir tikai dažas funkcijas, kas, šķiet, ir mazāk pazīstamas kā pārējās. Es atklāju jaunu lielisku funkciju ik pēc diviem mēnešiem, un es esmu pārliecināts, ka mani attīstītāji draugi tur varētu mūs pārsteigt vēl vairāk.
Ja jums ir iecienīta neskaidra funkcija vai funkcija, kas būtu noderīga, bet nav pieejama, informējiet mūs komentāros!