15 Nyttige WordPress-funktioner Alle udviklere skal vide
WordPress er fyldt med gode funktioner, som vi kan bruge til udviklere. Vi kan trække postlister ud af den tynde luft, manipulere næsten alt om dem, tag enhver bruger vi ønsker og vis deres sociale medier tilslutninger i en jiffy.
Der er dog ganske mange funktioner, der tilsyneladende overses af ukendte årsager. Jeg har kodet med WordPress i omkring 8 år nu og lejlighedsvis finder jeg stadig noget nyt! Lad os tage et kig på nogle af mine Favorit overset funktioner og lære at bruge dem undervejs.
antispambot ()
Jeg plejer at hæve et par øjenbryn med denne, det ser ud til at være en af de mest godt skjulte funktioner i codebase.
erstatter tegn med HTML-enheder, som er en måde at maske e-mail adresser fra onde skraber.antispambot ()
$ email = '[email protected]'; ekko 'Du kan kontakte mig på'. antispambot ($ email). "helst tid".
Selvom dette er en nyttig tidbit, er det også et eksempel på, hvorfor nogle kritiserer WordPress - dette er en forfærdelig navngivet funktion. Fra at læse funktionsnavnet har du ingen idé om, hvad det gør.
human_time_diff ()
Da jeg først lærte om denne funktion for et år siden, troede jeg, at det måtte have været en ny tilføjelse, som jeg overset i en changelog. Ikke helt…
Denne funktion - som udsender forskellen mellem to tidsstempler - har været i siden version 1.5 (det er 17 februar 2018!).
Følgende store kodestykke, jeg lånte fra codex, viser, hvor længe siden der blev offentliggjort et nuværende indlæg. Det bruger offentliggør datoen for stillingen som det første argument og Nuværende dato som anden.
ekko 'Dette indlæg blev offentliggjort'. human_time_diff (get_the_time ('U'), current_time ('tidsstempel')). ' siden';
get_post_meta ()
Bær med mig her, jeg ved, at dette er en veludnyttet funktion, men hvordan det virker, er ikke så almindeligt kendt. Først og fremmest ved at udelade det andet og tredje parameter, du kan Træk alle metadata til et indlæg.
$ all_meta = get_post_meta (14);
Selvom du kun tager fat i dataene for en enkelt nøgle, bliver alle postmeta alligevel trukket.
Årsagen er faktisk ret logisk. Metadata bruges på flere steder. Hvis
spørger databasen hver gang den blev brugt, ville vi ende med alt for mange forespørgsler. I stedet, hvis du trækker metadata, caches det alt sammen og bruger de cachelagrede værdier på alle efterfølgende metadata-retrievals.get_post_meta ()
wp_upload_bits ()
Denne funktion er en straight-up fil upload funktion. Selvom det ikke flytter filen til uploads-mappen og tilføjer den til WordPress-medieafsnittet, er det yderst bekvemt, og du kan altid gøre resten med
fungere.wp_insert_attachment ()
$ upload = wp_upload_bits ($ file ['name'], null, file_get_contents ($ file ['tmp_name']));
Der er en del forklaring på dette: Den første parameter er filnavnet. Den anden afskrives, så den skal indstilles til null (eyeroll i WordPress-konsistens). Den tredje parameter er det faktiske indhold af filen.
get_post_field ()
Tidligere så jeg et par eksempler, hvor nogen skrev en loop for at få en kommentar til at tælle for et indlæg, eller skrev en dedikeret database forespørgsel til det. Du behøver dem ikke, hvad du har brug for er
. Denne funktion henter værdien af et enkelt felt for et enkelt indlæg i databasen. Lad os gribe en kommentar tæller!get_post_field ()
Dette indlæg har kommentarer.
wpautop ()
Denne funktion er kommet lidt ud i spotlyset, men det er stadig relativt ukendt. Det ligner PHP native nl2br
men i stedet for at skabe nye linjer, det Ombryder dit indhold i afsnit.
Dette er nyttigt, hvis du har en tekstboks, og du vil sikre dig, at når brugere opretter afsnit med dobbeltliniebrud, forbliver de også synlige i fronten.
Hvad vores brugere siger
wp_is_mobile ()
Denne passende navngivne funktion registrerer, hvornår en bruger er på en mobilenhed og giver dig mulighed for at vise indhold i overensstemmelse hermed. Da dette er et betinget tag, returneres det sandt eller falsk afhængigt af scenariet.
Besøg vores hjemmeside på dit skrivebord for at få en rigere brugeroplevelse
wp_redirect ()
Det sidste eksempel viser en anden pæn funktion:
. Dette skal bruges i stedet for PHP-indfødte wp_redirect ()
header()
fungere. WordPress omdirigeringsfunktionen giver dig mulighed for at Indstil en URL for at omdirigere til, og angiv også en statuskode, fantastisk til at håndtere permanente omdirigeringer så godt.
// For en URL, der ikke længere er i brug wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
Jeg vedder på, at denne funktion skyldes dens uklarhed til dels for populariteten af WP-PageNavi-plugin. Som standard er WordPress viser tidligere / næste links i slutningen af din postliste. WP-PageNavi erstatter det med sidetal.
Dette kan faktisk gøres med lidt arbejde ved hjælp af
funktioner. Det har en hel del parametre, så jeg anbefaler at kigge på dokumentationen.paginate_links ()
Følgende eksempel fra codex viser, hvordan du kan tilføje det til en standard sløjfe, men at tilføje det til brugerdefinerede sløjfer er ikke meget af en strækning.
global $ wp_query; $ big = 999999999; // har brug for et usandsynligt heltal ekko paginate_links (array ('base' => str_replace ($ big, '% #%', esc_url (get_pagenum_link ($ big))) 'format' => 'paged =% #%' , 'nuværende' => max (1, get_query_var ('paged')), 'total' => $ wp_query-> max_num_pages));
wp_die ()
Denne funktion supplerer PHP dø()
fungere. Forskellen er, at denne funktion vil vise en WordPress-stylet HTML i stedet for blot en almindelig tekst. Du kan bruge denne funktion til at stoppe PHP-udførelse. Du kan tilføje beskeden, titlen og yderligere argumenter, der skal vises, for eksempel:
wp_die ("Ups, du har ikke adgang til", "Tilladelse nægtet");
has_block ()
I version 5.0 introducerede WordPress en blokbaseret editor, kodenavnet Gutenberg. Denne funktion vil identificere, om indholdet indeholder en Gutenberg, stort set det samme med has_shortcode ()
fungere. Det vender tilbage rigtigt
hvis indholdet indeholder en blok eller falsk
hvis det ikke gør det.
wp_set_script_translations ()
Da mange dele af WordPress-brugergrænsefladen skal flytte til JavaScript, har den brug for en nem måde at registrere oversættelige tekster på i JavaScript, som WordPress kunne analysere og forstå. Brug denne funktion til at indstille oversatte strenge til dine scripts. 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 anden fremtrædende funktion i WordPress 5.0. Denne funktion giver dig mulighed for at registrere en ny blok i den nye WordPress-editor. Din blok vises i den nye editor og indsætter den .
register_block_type ('my-plugin / new-block', array ('title' => 'Ny blok', 'ikon' => 'megafon', 'kategori' => 'widgets', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
Denne funktion giver dig mulighed for at ringe til WordPress REST API-endepunkter via PHP. Rigtig nyttig, når du skal hente en output fra REST API for at behandle, at du vil behandle yderligere inden for PHP-siden i stedet for i browseren (front-end) side.
$ request = ny 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 === $ respons-> get_status ()? $ respons-> get_data (): [];
rest_preload_api_request ()
Når du opbygger et JavaScript-tung brugergrænseflade i WordPress, behøver du typisk et sæt initialdata, der er proloadet på siden. Dette er den funktion, der giver dig mulighed for at gøre det. Denne funktion er beregnet til at blive brugt sammen med array_reduce
, for eksempel.
// Forlæse almindelige data. $ preload_paths = array ('/', '/ wp / v2 / types? context = rediger', '/ wp / v2 / taxonomier? per_page = -1 & kontekst = 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)), 'efter');
Konklusion
Disse er blot nogle funktioner, der synes at være mindre kendte, at resten. Jeg opdager en ny stor funktion hver anden måned, og jeg er sikker på, at mine udviklere venner derude kunne overraske os endnu mere.
Hvis du har en favorit obskure funktion eller en funktion, som ville være nyttig, men ikke er tilgængelig, så lad os vide i kommentarerne!