15 Nyttige WordPress-funksjoner Alle utviklere burde vite
WordPress er full av flotte funksjoner for utviklere å bruke. Vi kan trekke postlister ut av tynn luft, manipulere nesten alt om dem, ta tak i hvilken som helst bruker vi ønsker og vis deres sosiale medier tilkoblinger i en jiffy.
Det er imidlertid ganske mange funksjoner som synes å bli oversett for ukjente grunner. Jeg har kodet med WordPress i rundt 8 år nå og noen ganger finner jeg fremdeles noe nytt! La oss ta en titt på noen av mine favoritt oversett funksjoner og lære å bruke dem underveis.
antispambot ()
Jeg pleier å heve noen få øyenbryn med denne, det synes å være en av de mest godt skjulte funksjonene i kodebase.
erstatter tegn med HTML-enheter som er en måte å maske e-postadresser fra onde skraper.antispambot ()
$ email = '[email protected]'; ekko 'Du kan kontakte meg på'. antispambot ($ email). "når som helst".
Selv om dette er nyttig, er det også et eksempel på hvorfor noen kritiserer WordPress - dette er en forferdelig navngitt funksjon. Fra å lese funksjonsnavnet har du ingen anelse om hva den gjør.
human_time_diff ()
Da jeg først lærte om denne funksjonen for et år siden, trodde jeg det måtte vært et nylig tillegg som jeg oversett i en changelog. Ikke helt…
Denne funksjonen - som gir forskjellen mellom to tidsstempler - har eksistert siden versjon 1.5 (det er 17. februar 2018!).
Følgende store utdrag jeg lånte fra kodeksen viser hvor lenge siden et nåværende innlegg ble publisert. Den bruker Publiser datoen for innlegget som det første argumentet og nåværende dato som den andre.
ekko 'Dette innlegget ble publisert'. human_time_diff (get_the_time ('U'), current_time ('tidsstempel')). 'siden';
get_post_meta ()
Bær med meg her, jeg vet at dette er en velfungerende funksjon, men hvordan det virker, er ikke så vanlig kunnskap. Først av alt, ved å utelate den andre og tredje parametere du kan trekk alle metadata for et innlegg.
$ all_meta = get_post_meta (14);
Selv om du bare tar tak i dataene for en enkelt nøkkel, blir alle postmeta uansett trukket.
Årsaken er faktisk ganske logisk. Metadata brukes på flere steder. Hvis
spørre databasen hver gang den ble brukt, ville vi ende opp med altfor mange spørsmål. I stedet, hvis du trekker metadata, caches det alt og bruker de bufrete verdiene på alle etterfølgende metadata-retrievals.get_post_meta ()
wp_upload_bits ()
Denne funksjonen er rett opp filopplastingsfunksjon. Selv om den ikke flytter filen til opplastingsmappen og legger den til i WordPress-mediaseksjonen, er den ekstremt praktisk, og du kan alltid gjøre resten med
funksjon.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['name'], null, file_get_contents ($ file ['tmp_name'])));
Det er noe forklaring på dette: Den første parameteren er filnavnet. Den andre avskrives, slik at den skal settes til null (eyeroll i WordPress-konsistens). Den tredje parameteren er det faktiske innholdet i filen.
get_post_field ()
Tidligere så jeg ganske mange eksempler hvor noen skrev en løkke for å få en kommentar til et innlegg, eller skrev en dedikert databaseforespørsel for den. Du trenger ikke dem, det du trenger er
. Denne funksjonen henter verdien av et enkelt felt for et enkelt innlegg i databasen. La oss få tak i en kommentartelling!get_post_field ()
Dette innlegget har kommentarer.
wpautop ()
Denne funksjonen har kommet litt inn i rampelyset, men det er fortsatt relativt ukjent. Det ligner på PHP-innfødt nl2br
men i stedet for å lage nye linjer, det bryter inn innholdet ditt i avsnittene.
Dette er nyttig hvis du har en tekstboks og du vil sørge for at når brukerne oppretter avsnitt med dobbeltlinjeskift, forblir de også synlige i fronten.
Hva våre brukere sier
wp_is_mobile ()
Denne passende navngitte funksjonen oppdager når en bruker er på en mobil enhet og lar deg vise innhold tilsvarende. Siden dette er en betinget kode, returneres det sant eller falskt avhengig av scenariet.
Besøk vår nettside på skrivebordet for en rikere brukeropplevelse
wp_redirect ()
Det siste eksemplet viser en nydelig funksjon:
. Dette bør brukes i stedet for PHP-innfødte wp_redirect ()
Overskrift()
funksjon. WordPress-omdirigeringsfunksjonen lar deg sett inn en nettadresse for omdirigering til, og sett også en statuskode, Flott for å håndtere faste omdirigeringer også.
// For en nettadresse som ikke lenger er i bruk wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
Jeg slår på at denne funksjonen skyldes sin uklarheten til dels for populariteten til WP-PageNavi-plugin. Som standard WordPress viser tidligere / neste koblinger på slutten av postlisten din. WP-PageNavi erstatter det med sidetall.
Dette kan faktisk gjøres med et lite arbeid ved hjelp av
funksjoner. Den har ganske mange parametere, så jeg anbefaler å ta en titt på dokumentasjonen.paginate_links ()
Følgende eksempel fra kodeksen viser hvordan du kan legge det til en standardsløyfe, men å legge det til tilpassede sløyfer er ikke mye av en strekning.
global $ wp_query; $ big = 999999999; // trenger et usannsynlig heltall ekko paginate_links (array ('base' => str_replace ($ big, '% #%', esc_url (get_pagenum_link ($ big))), 'format' => 'paged =% #%' , 'nåværende' => maks (1, get_query_var ('paged')), 'totalt' => $ wp_query-> max_num_pages));
wp_die ()
Denne funksjonen kompletterer PHP dø()
funksjon. Forskjellen er at denne funksjonen vil vise en WordPress-stilert HTML i stedet for bare en ren tekst. Du kan bruke denne funksjonen til å stoppe PHP-kjøring. Du kan legge til meldingen, tittelen og tilleggsargumentene som skal vises, for eksempel:
wp_die ("Ups, du har ikke tilgang til", "Tillatelse nektet");
has_block ()
I versjon 5.0 innførte WordPress et blokkbasert redaktør, kodenavnet Gutenberg. Denne funksjonen vil identifisere om innholdet inneholder en Gutenberg, ganske likt med has_shortcode ()
funksjon. Det kommer tilbake ekte
hvis innholdet inneholder en blokk, eller falsk
hvis det ikke gjør det.
wp_set_script_translations ()
Siden mange deler av WordPress brukergrensesnitt skal flytte til JavaScript, trenger det en enkel måte å registrere oversetterbare tekster på i JavaScript som WordPress kan analysere og forstå. Bruk denne funksjonen til å sette oversatte strenge for skriptene dine. Nedenfor er et eksempel:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
En annen fremtredende funksjon i WordPress 5.0. Denne funksjonen lar deg registrere en ny blokk i den nye WordPress-editoren. Blokken din vil dukke opp i den nye editoren og sette den inn .
register_block_type ('my-plugin / new-block', array ('title' => 'Ny blokk', 'ikon' => 'megafon', 'kategori' => 'widgets', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
Denne funksjonen lar deg ringe til WordPress REST API-endepunkter via PHP. Ganske nyttig når du trenger å hente en utgang fra REST API for å behandle at du vil behandle videre i PHP-siden i stedet for i nettleseren (front-end) -siden.
$ request = ny WP_REST_Request ('GET', "/ wp / v2 / posts"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ respons = rest_do_request ($ request); $ data = 200 === $ respons-> get_status ()? $ respons-> get_data (): [];
rest_preload_api_request ()
Når du bygger et JavaScript-tung brukergrensesnitt i WordPress, trenger du vanligvis et sett med startdata som er lastet inn på siden. Dette er funksjonen som lar deg gjøre det. Denne funksjonen er ment å brukes sammen med array_reduce
, for eksempel.
// Forelaste vanlige data. $ preload_paths = array ('/', '/ wp / v2 / types? context = rediger', '/ wp / v2 / taxonomies? per_page = -1 & context = rediger', '/ wp / v2 / temaer? status = aktiv' ,); 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)), 'etter');
Konklusjon
Dette er bare noen funksjoner som synes å være mindre kjent som resten. Jeg oppdager en ny flott funksjon hver annen måned, og jeg er sikker på at utviklerne mine der ute kan overraske oss enda lenger.
Hvis du har en favoritt obskure funksjon eller en funksjon som ville være nyttig, men ikke tilgjengelig, gi oss beskjed i kommentarene!