En av feilene som mange utviklere gjør når du oppretter kortkoder (i temaer og plugins) er alltid laster inn alle skript og stiler. For effektivitetens skyld, og for bedre å forhindre konflikter, skal skript og stiler bare lastes når de trengs. Dette er en veldig praktisk funksjon som lar deg utføre enhver handling du vil ha, for eksempel lasting av skript og stiler, når, og bare når, et innlegg har en bestemt kortkode.
Funksjonene er egentlig ganske enkle. Alt vi skal gjøre er å sende en kort kode som en parameter, og kontroller innholdet i gjeldende innlegg for den korte koden
Du kan lime inn denne koden i din functions.php eller din egen plugin-fil.
// Sjekk nåværende innlegg for eksistensen av en kortkodefunksjon has_shortcode ($ shortcode = ") $ post_to_check = get_post (get_the_ID ()); // false fordi vi må søke gjennom innleggets innhold først $ found = false; // hvis ingen kortkode ble oppgitt, returner falsk hvis (! $ shortcode) return $ found; // sjekke innleggets innhold for kortnummeret hvis (stripos ($ post_to_check-> post_content, '['. $ shortcode) ! == false) // vi har funnet kortkoden $ found = true; // returnere våre endelige resultater returneres $ found;
Det første vi gjør er å sende en parameter til funksjonen som kalles $ snarvei og vi satte det til å være tomt. Deretter får vi postobjektet for det nåværende innlegget. Vi gjør dette ved å bruke get_post () -funksjonen til å returnere postobjektet til den oppgitte IDen, som vi oppnår med get_the_ID (), fra databasen. Når vi har lagret postobjektet i en variabel, $ post_to_check, Vi kan søke gjennom innholdet for den angitte kortkoden
Etter at vi har hentet postobjektet, setter vi inn $ funnet variabel til falsk, og sørg for at $ snarvei parameteren er ikke tom, og hvis det er, avslutter vi funksjonen ved å returnere $ funnet variabel som falsk.
Nå er vi klare til å søke gjennom innleggets innhold for ønsket kortkode. Vi gjør dette ved hjelp av stripos () -funksjonen. Denne funksjonen tar to parametere, strengen der du skal søke (den høystakk), og strengen for å søke (den trenge). I tilfelle, vår haystack er innleggets innhold, som er tilgjengelig med $ Post_to_check-> POST_CONTENT, og nålen er koden vi passerte til vår tilpassede funksjon som en parameter. Legg merke til at vi har forlatt den avsluttende "]" av nåleparameteren; Dette skyldes at vi må ta hensyn til kortkoder som aksepterer parametere og dermed ikke vil ha sluttbraketten umiddelbart etter kortkodenavnet.
Hvis stripos () finner kortkoden, satte vi $ funnet variabel til ekte og returner deretter resultatene våre. Det er det, vår funksjon er fullført.
Denne funksjonen kan brukes hvor som helst i templatmalene dine (ikke bare i loop), og er ekstremt nyttig for å selektivt laste inn skript og stiler.
For å sjekke om det aktuelle innlegget har en bestemt kortkode, kan du bruke funksjonen slik:
hvis (has_shortcode ('your_short_code')) // utfør handlinger her
Sannsynligvis er et av de vanligste stedene du vil bruke denne funksjonen, i header.php når du laster inn stiler og skript, slik som:
hvis (has_shortcode ('contactform')) wp_enqueue_style ('contactfom', get_bloginfo ('template_directory'). 'includes / contactform.css'); wp_enqueue_script ('contactfom', get_bloginfo ('template_directory'). 'includes / contactform.js');
Når plugins og temaer som ikke bruker gode kodingsstandarder, er så rikelig, er det viktig at vi alltid forsøker å utvikle seg med høye kvalitetsstandarder i tankene, slik at vi kan bidra til å forhindre så mange mulige skript / stilkonflikter som mulig. En av måtene vi kan gjøre dette på, er å bare laste inn skript / stiler for våre korte koder når de faktisk trengs.
Les mer om hvordan du bruker og lager kortkoder i prosjektene dine her!