Ins og Outs of The Enqueue Script for WordPress Temaer og plugins

De wp_enqueue_script funksjon er den beste løsningen for å laste JavaScript-filer inn på WordPress-siden din. Hvis du utvikler et tema som bruker JavaScript eller JavaScript-biblioteker, vil wp_enqueue_script funksjonen er veien å gå. Hvis du ikke har brukt dette før, kan det være forvirring ... så i dag tar vi en grundig titt på hvordan du skal laste inn skript på riktig måte i temaet eller pluginet ved hjelp av enqueue-funksjonen.

Senere endringer i teknikker og programvare

Visse aspekter av applikasjoner eller teknikker som brukes i denne opplæringen, har endret seg siden den ble opprinnelig publisert. Dette kan gjøre det litt vanskelig å følge med. Vi anbefaler å se på disse nyere opplæringsprogrammene på samme emne:

  • Slik inkluderer du JavaScript og CSS i WordPress-temaene og pluginene

Hvorfor bruker vi Enqueue-funksjonen?

Hvis du kommer fra en grunnleggende HTML-bakgrunn, er du sannsynligvis vant til å laste opp Javascript-filer (inkludert alt fra jQuery til plugin-skript) direkte inn i overskriften eller bunnteksten til dokumentet. Det er greit når du er i et frittstående miljø som en grunnleggende HTML-side ... men når du introduserer det mylder av andre skript som potensielt kan kjøre på en WordPress-installasjon, blir det vanskeligere å gjøre det jeg vil kalle "crowd management" med din skript.

Så hvorfor ikke laste inn JavaScript i Header eller Footer? Svaret er ganske enkelt: Ved å inkludere JavaScript slik, risikerer du å ha konflikter med JavaScript på tvers av installasjonen din (tenk, flere plugins prøver å laste inn samme skript eller forskjellige versjoner av det skriptet). Videre vil JavaScript lastes på hver side, selv om du ikke trenger det. Dette vil føre til unødvendig lengre belastningstid for sidene dine, og kan forstyrre andre JavaScript, som fra et plugin eller i dashbordet ... og det er en Nei Nei i WP-utvikling.

Ved å bruke wp_enqueue_script funksjon. Du har bedre kontroll med hvordan og når du laster inn JavaScript. Du kan selv bestemme om du vil laste inn overskriften eller bunnteksten.


Forstå wp_enqueue_script Funksjon

De wp_enqueue_script funksjonen er det som laster skript i WordPress-siden. Du pleier å bruke den i din functions.php fil.

De wp_enqueue_script funksjonen er ganske rett frem, så la oss se på strukturen.

wp_enqueue_script ($ handle, $ src, $ deps, $ ver, $ in_footer);

  • $ håndtak
    • Dette er håndtaket (navnet) på skriptet som skal lastes inn. Det burde være i all hovedsak.
    • Dette er nødvendig
    • Standard: Ingen
  • $ scr
    • Dette er nettadressen til skriptet.
    • Hvis du laster inn lokalt fra serveren din, bør du ikke hardt kode URLen for skript på serveren din. Det er bedre å bruke content_url, bloginfo ( "template_url"), eller get_template_directory_uri () (anbefalt av WordPress-funksjonsreferansen) for temaer, og plugins_url for plugins.
          
    • Hvis du laster skriptet ditt fra en annen server. For eksempel laster du inn jQuery-biblioteket fra Google CDN. Du legger nettadressen til filen som skal lastes inn.
       
    • Dette er valgfritt
    • Standard: false
  • $ deps
    • Dette er en matrise som håndterer eventuelle skriptavhengigheter. For eksempel, er fade.js-scriptet ditt at jQuery skal kjøre. Denne parameteren knytter skriptet til jQuery-biblioteket.
    • Du bruker "false" hvis du ikke vil bruke denne parameteren, men vil bruke andre parametere.
       
    • Det nødvendige skriptet må lastes først.
    • Du bruker det nødvendige skriptets håndtak for matrisen.
       
    • Dette er valgfritt
    • Standard: array ()
  • $ ver
    • Dette er versjonen av skriptet ditt.
    • Versjonen er sammenkoblet til slutten av banen som en spørringsstreng. Versjonen kan være versjonsnummer, falsk eller NULL.
    • Hvis du bruker feil for versjonen. WordPress-versjonen vil bli brukt.
    • Hvis du bruker NULL. Ingenting vil bli brukt som en versjon. Dette anbefales ikke av WordPress-funksjonsreferansen.
    • Hvis du ikke bruker parameteren $ ver. WordPress-versjonen vil bli brukt som standard.
       
    • Dette er valgfritt
    • Standard: false
  • $ in_footer
    • Dette bestemmer hvor skriptet ditt er plassert på siden.
    • Denne parameteren er en boolsk ("sann" eller "falsk")
    • Som standard vil skriptet ditt bli plassert i , men det er bedre å plassere det rett før slutten av stikkord. Dette oppnås ved å sende "sant" til parameteren.
       
    • Dette er valgfritt
    • Standard: false

Som du kan se, alle parametrene unntatt $ håndtak er valgfrie. Ved første øyekast kan dette virke merkelig. Spesielt $ scr parameter. Hvordan kan WordPress finne skriptet uten en URL?

Årsaken bak dette er at WordPress kommer med skript innebygd. For eksempel er jQuery en del av WordPress-kjerne, og WordPress-utviklingslaget gjorde det super enkelt å laste inn disse innebygde skriptene. Alt du trenger å gjøre er å passere skriptets håndtak til wp_enqueue_script.

 

For den komplette listen over innebygde WordPress-skript og deres håndtak. Ta en titt på WordPress-funksjonsreferansen.


Bruke Enqueue Script med WordPress Theme

Nå som du forstår delene av wp_enqueue_script. La oss se på hvordan du faktisk bruker dette med WordPress-temaet ditt.

Første ting først

Det finnes andre WordPress-funksjoner som du trenger å vite før du kan starte enqueing-skript på riktig måte.

  • wp_register_script
    • De wp_register_script funksjonen er brukt til å registrere skriptet ditt med WordPress. Hva dette betyr er, vil du kunne bruke wp_enqueue_script for skriptene dine akkurat som de innebygde skriptene som følger med WordPress
    • Parameterstrukturen for wp_register_script er akkurat det samme som wp_enqueue_script struktur, så jeg kommer ikke til å gå over den igjen. Du kan referere til delen ovenfor hvis det er nødvendig.
    • Bare sett opp wp_register_script akkurat som du ville for wp_enqueue_script. Skal deretter skriptet med wp_enqueue_script ved å føre håndtaket til det.
       
  • wp_deregister_script
    • De wp_deregister_script fjerner et registrert skript.
    • Alt du trenger å gjøre er å sende håndtaket til det.
       
  • wp_deregister_script
    • De wp_dequeue_script fjerner et registrert skript.
    • Alt du trenger å gjøre er å sende håndtaket til det.
       

Laster inn skriptene dine

Den enkleste måten å laste skriptet ditt er å plassere wp_enqueue_script hvor som helst du vil ha den på siden din.

  

Lett nok, bare ikke til elegant. En bedre måte er å bruke din funksjon.php-fil for å laste inn skriptene dine. For å gjøre dette må du lage en egendefinert funksjon. Bruk deretter ADD_ACTION for å initialisere funksjonen din.

 
  • Linje 2 skaper en funksjon som kalles load_my_scripts
  • Linje 3 registrerer skriptet MyScript
  • Linje 4 angir skriptet MyScript
  • Linje 6 initialiserer funksjonen load_my_scripts

Skriptet vi nettopp lastet trenger den nåværende versjonen jQuery å kjøre, så la oss avregistrere standardversjonen som følger med WordPress legg til den nye versjonen til vår funksjon.

 
  • Linje 2 avregistrerer standard jQuery som følger med WordPress
  • Linje 3 registrerer en annen versjon av jQuery
  • Linje 4 angir skriptet MyScript

OK, god praksis for WordPress-koding dikterer vi må sjekke om en funksjon eksisterer før vi kjører den. Dette oppnås slik.

 

Dette kontrollerer om funksjonen din allerede eksisterer. Hvis det ikke gjør det, kjører det din funksjon.

La oss legge til dette i vår load_my_scripts funksjon

 

Nå, hvis du går til admin siden du ikke vil at skriptet skal lastes inn. Det kan føre til en konflikt og ødelegge administrasjonssiden. En generell tommelfingerregel er at du ikke vil at de tilpassede skriptene skal lastes inn på administrasjonssiden. Skript for plugins er en annen historie. Jeg går over det senere.

Vi skal sjekke om siden lastet er ikke admin siden med! is_admin (). Hvis ikke, vil våre skript lastes.

 

Nå ser funksjonen ut som dette.

 

Der går du. En fin mal for deg å bruke til å skrive inn skript


Bruke Enqueue Script for pluginene dine

OK, nå da du fikk det ned. La oss legge til et skript som bare vil laste inn på pluginets administrasjonsside.

Det er faktisk veldig enkelt. Bare skriv skriptfunksjonen akkurat som på vi gjorde i forrige del i pluginfilen din. Bare nå i stedet for å bruke 'init' i add_action, bruk 'admin_init'.

 

Det er det, nå vil skriptet bare lastes når du går til pluginets administrasjonsside.


Konklusjon

Jeg håper dette vil hjelpe deg å forstå bedre Enqueue Scripts innen WordPress, så nå kan du komme deg ut og laste inn noen egne skript!

Hvis det er noe du ikke forstår eller vil lese om. Jeg anbefaler å besøke WordPress Codex. Her er en liste over noen andre relevante kodeksforbindelser for deg også:

  • Funksjonsreferanse / wp enqueue script
  • Funksjonsreferanse / wp register script
  • Funksjonsreferanse / wp avregistreringsskript
  • Funksjonsreferanse / wp dequeue script