Jeg husker å tenke "Hva har vi behov for JavaScript for når vi har Flash?" da jeg var fjorten. Selv om jeg fortsatt husker hvordan jeg likte koding av ting med ActionScript 2.0, så så jeg hvor mye man kan oppnå med JavaScript og ble forelsket i det. Jeg er ikke en ekspert på JavaScript (ennå), men jeg kan si at jeg er over og ferdig med Flash i lang tid.
Når det gjelder WordPress, er den største blogging-plattformen og innholdsstyringssystemet over hele verden JavaScript - selvfølgelig - veldig nyttig for mange ting: innholdsregulatorer, lightbox gallerier, glatt handlekurver, UI-elementer som faner eller trekkspill ... du nevner det. Men hvordan skal vi bruke JavaScript med WordPress?
Returnerer eller ekko en haug med HTML manus
elementer er en måte å gjøre det på - og det er det feil. I denne opplæringen skal vi se hvordan Enqueue JavaScript-filer inne i våre sider og hvordan du kan oversette oversettbare data til JavaScript-koden.
Det er i utgangspunktet to viktige problemer du kan støte på hvis du injiserer JavaScript-filer direkte inn i WordPress med HTML-kode:
ekko
den riktige manus
tag i
og det fungerer! Men hva om en annen plugin vil bruke jQuery også - hvordan ville det vite at jQuery allerede er lastet inn i
? Det ville ikke, og selv om det andre pluginet inneholder jQuery den riktige måten, siden ville fortsatt ha to forekomster av jQuery, fordi du ikke er det.
?Løsningen på det første problemet er bare å "registrere" og "enqueueing" JS-filene med de to kjernefunksjonene i WordPress: wp_register_script ()
og wp_enqueue_script ()
. Det andre problemløsningen er enda enklere: Kjernen wp_localize_script ()
funksjonen lar deg overføre oversettbare data til JS-koden din.
Før du kan "enqueue" JavaScript-filene, bør du "registrere" dem først. Og det er gjort bare ved å bruke en funksjon som heter wp_register_script ()
:
Noen notater om parametrene:
array ('jquery')
for denne parameteren.null
eller la den være tom. Hvis du setter det til streng, vil det bli lagt til utgangskoden som my-script.js? ver = 1.2
. Hvis du lar parameteren være tom, vil versjonen av WordPress-installasjonen bli lagt til som versjonsnummer. Hvis du setter den til null
, ingenting vil bli lagt til.
seksjon. Men hvis du setter denne parameteren til ekte
, Det vil bli lastet like før avslutningen
stikkord.Du kan også "avregistrere" skript som allerede er registrert av kjernen eller andre plugins med wp_deregister_script ()
funksjon. Den aksepterer bare a 'Navn'
parameter, som du oppgir navnet på skriptet for å være "avregistrert". Åpenbart.
Det er en rekke skript på WordPress Codex som allerede er registrert i kjernen. Selv om du bør dobbeltsjekke listen for den gjeldende versjonen av WordPress, siden den refererer til WordPress versjon 3.3 og kan være utdatert.
Du kan registrere et skript, men det betyr ikke at det skal lastes automatisk. Når du har registrert skriptene dine, bør du "enqueue" dem med wp_enqueue_script ()
funksjon:
Noen notater om parametrene:
ekte
, Skriptet lastes rett før
stenger.Du kan også "dequeue" skript med wp_dequeue_script ()
funksjon. Ligner på wp_deregister_script ()
funksjon, aksepterer den bare a 'Navn'
parameter.
Du kan sjekke "tilstanden" til et skript med wp_script_is ()
funksjon. For eksempel, hvis du vil sjekke om 'my-script
'er enqueued, bare bruk wp_script_is ('my-script', 'kø')
i en hvis
uttalelse.
Den riktige måten å kreve skriptene dine (og stiler også) bruker krokene nedenfor:
På grunn av kompatibilitetsproblemer, gjør du det må ikke bruk krokene som heter admin_print_scripts
eller admin_print_styles
.
For videre lesing om å inkludere JavaScript (og CSS!) I temaene og pluginene, kan du se hvordan du inkluderer JavaScript og CSS i WordPress-temaene og pluginene av Japh Thomson på Wptuts+.
Når det gjelder lokalisering, er JavaScript alltid et problem med WordPress ... fordi så mange mennesker ikke vet den ryddige lillefunksjonen som heter wp_localize_script ()
:
__ ('Next', 'my-script'), 'prevItem' => __ ('Forrige', 'my-script'), 'imageTitle' => __ ('Bilde% d av% d' skript ')); wp_localize_script ('name-of-the-script', // (påkrevd) navnet på scriptet, 'my-script' for eksempel 'nameOfTheObject', // (påkrevd) navnet på scriptet, for eksempel $ l10n_data // (obligatorisk) dataene som skal sendes, som kan oversettes med funksjonen __ (); ?>
Etter registrering, enqueueing og lokalisering av skriptet, kan du passere lokalisert variabel i skriptet ditt ved å bruke navnet på objektet og navnene på dataene, som varsling (nameOfTheObject.prevItem);
!
Du kan referere til Pipping Williamsons artikkel for en grundigere analyse.
Det er grunnen til at WordPress er det største innholdsstyringssystemet i verden: Strømmen kommer fra sin fleksibilitet. Og jeg tror at denne opplæringen viser (igjen) hvor fleksibel det er.
Denne opplæringen dekker ganske mye hva WordPress tilbyr om JavaScript-bruk for våre prosjekter. Har du flere tips eller teknikker på JavaScript og WordPress? Fortell oss om det!