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.
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:
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.
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
content_url
, bloginfo ( "template_url")
, eller get_template_directory_uri ()
(anbefalt av WordPress-funksjonsreferansen) for temaer, og plugins_url
for plugins. $ deps
$ ver
$ in_footer
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.
Nå som du forstår delene av wp_enqueue_script
. La oss se på hvordan du faktisk bruker dette med WordPress-temaet ditt.
Det finnes andre WordPress-funksjoner som du trenger å vite før du kan starte enqueing-skript på riktig måte.
wp_register_script
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 WordPresswp_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.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
wp_deregister_script
fjerner et registrert skript.wp_deregister_script
wp_dequeue_script
fjerner et registrert skript.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.
load_my_scripts
MyScript
MyScript
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.
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
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.
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å: