De wp_enqueue_script
functie is de beste oplossing voor het laden van JavaScript-bestanden in uw WordPress-site. Als u een thema ontwikkelt dat JavaScript- of JavaScript-bibliotheken gebruikt, is de wp_enqueue_script
functie is de manier om te gaan. Als je dit nog niet echt eerder hebt gebruikt, kunnen dit verwarringen zijn ... dus vandaag zullen we een diepgaand onderzoek doen naar hoe je scripts correct in je thema of plug-in kunt laden met behulp van de wachtrijfunctie.
Bepaalde aspecten van toepassingen of technieken die in deze zelfstudie worden gebruikt, zijn gewijzigd sinds de publicatie oorspronkelijk werd gepubliceerd. Dit maakt het misschien een beetje moeilijk om mee te volgen. We raden u aan deze meer recente zelfstudies over hetzelfde onderwerp te bekijken:
Als u een eenvoudige HTML-achtergrond hebt, bent u waarschijnlijk gewend om JavaScript-bestanden (inclusief alles van jQuery- naar plug-inscripts) rechtstreeks in de kop- of voettekst van uw document te laden. Dat is prima als u zich in een zelfstandige omgeving bevindt, zoals een eenvoudige HTML-pagina ... maar zodra u de talloze andere scripts introduceert die mogelijk op een WordPress-installatie worden uitgevoerd, wordt het lastiger om te doen wat ik "crowd management" zal noemen met uw scripts.
Dus waarom zou u uw JavaScript niet in de koptekst of de voettekst laden? Het antwoord is vrij simpel: door je JavaScript op die manier op te nemen, loop je het risico van conflicten met je JavaScript in je installatie (denk aan, meerdere plug-ins proberen dezelfde scripts te laden of verschillende versies van dat script). Verder wordt uw JavaScript geladen elk pagina, zelfs als u dit niet nodig heeft. Dit zorgt voor een onnodig langere laadtijd voor uw pagina's en kan interfereren met ander JavaScript, zoals vanuit een plug-in of in het dashboard ... en dat is een Nee in WP-ontwikkeling.
Door de wp_enqueue_script
functie. U hebt meer controle over hoe en wanneer u uw JavaScript laadt. U kunt zelfs beslissen of u de kop- of voettekst wilt laden.
De wp_enqueue_script
functie is wat scripts in je WordPress-site laadt. Je gaat het meestal gebruiken in je functions.php
het dossier.
De wp_enqueue_script
De functie zelf is redelijk rechttoe rechtaan, dus laten we eens kijken naar de structuur ervan.
wp_enqueue_script ($ handle, $ src, $ deps, $ ver, $ in_footer);
$ handle
content_url
, bloginfo ( "template_url")
, of get_template_directory_uri ()
(aanbevolen door de WordPress-functie) voor thema's, en plugins_url
voor plug-ins. $ deps
$ ver
$ in_footer
Zoals u kunt zien, alle parameters behalve $ handle
zijn optioneel. Op het eerste gezicht lijkt dit misschien vreemd. Vooral de $ scr
parameter. Hoe kan WordPress het script vinden zonder een URL?
De reden hierachter is dat WordPress wordt geleverd met ingebouwde scripts. JQuery maakt bijvoorbeeld deel uit van de WordPress-kern en het WordPress ontwikkelteam maakte het supereenvoudig om deze ingebouwde scripts te laden. Het enige wat je hoeft te doen is de handle van het script doorgeven wp_enqueue_script
.
Voor de volledige lijst met ingebouwde WordPress-scripts en hun handles. Bekijk de WordPress-functiehandleiding.
Nu begrijp je de delen van wp_enqueue_script
. Laten we eens kijken hoe u dit feitelijk gebruikt met uw WordPress-thema.
Er zijn andere WordPress-functies die u moet kennen voordat u scripts op de juiste manier kunt invennen.
wp_register_script
wp_register_script
functie wordt gebruikt om uw script te registreren bij WordPress. Wat dit betekent, kunt u gebruiken wp_enqueue_script
voor uw scripts, net als de ingebouwde scripts die bij WordPress horenwp_register_script
is precies hetzelfde als de wp_enqueue_script
structuur, dus ik ga er niet nog een keer overheen. U kunt indien nodig verwijzen naar het bovenstaande gedeelte.wp_register_script
precies zoals je zou doen wp_enqueue_script
. Creëer dan het script met wp_enqueue_script
door het handvat er doorheen te leiden. wp_deregister_script
wp_deregister_script
verwijdert een geregistreerd script.wp_deregister_script
wp_dequeue_script
verwijdert een geregistreerd script.De gemakkelijkste manier om je script te laden is door de wp_enqueue_script
waar je maar wilt op je pagina.
Makkelijk genoeg, alleen niet om elegant te zijn. Een betere manier is om uw function.php-bestand te gebruiken om uw scripts te laden. Om dit te doen, moet je een aangepaste functie maken. Gebruik dan add_action
om uw functie te initialiseren.
load_my_scripts
myscript
myscript
load_my_scripts
Het script dat we zojuist hebben geladen, heeft de huidige jQuery-versie nodig om te worden uitgevoerd, dus laten we de standaardversie van WordPress afmelden, de nieuwe versie aan onze functie toevoegen.
myscript
OK, goede praktijken voor het coderen van WordPress dicteren dat we moeten controleren of er een functie bestaat voordat we deze uitvoeren. Dit is zo bereikt.
Hiermee wordt gecontroleerd of uw functie al bestaat. Als dit niet het geval is, wordt uw functie uitgevoerd.
Laten we dit toevoegen aan onze load_my_scripts
functie
Als u nu naar uw beheerderspagina gaat, wilt u niet dat uw script wordt geladen. Dit kan een conflict veroorzaken en de beheerderspagina verbreken. Een algemene vuistregel is dat u niet wilt dat uw aangepaste scripts op de beheerderspagina worden geladen. Scripts voor plug-ins is een ander verhaal. Ik zal dat later bespreken.
We gaan controleren of de geladen pagina is niet de beheerderspagina met! is_admin (). Als dit niet het geval is, worden onze scripts geladen.
Nu ziet de functie er zo uit.
Daar ga je. Een mooie sjabloon die u kunt gebruiken om scripts in te huren
Oké, nu je dat onder de knie hebt. Laten we een script toevoegen dat alleen op de beheerderspagina van uw plug-in wordt geladen.
Het is eigenlijk heel simpel. Schrijf gewoon je scriptfunctie op dezelfde manier als in het vorige gedeelte in het bestand van je plug-in. Gebruik nu 'admin_init' in plaats van 'init' in het add_action te gebruiken.
Dat is alles, nu wordt uw script alleen geladen als u naar de beheerderspagina van plugin gaat.
Ik hoop dat dit je zal helpen om het beter te begrijpen Scripts inleveren in WordPress, dus nu kun je daar naar toe gaan en enkele eigen scripts laden!
Als er iets is dat u niet begrijpt of dat u wilt lezen. Ik raad aan de WordPress Codex te bezoeken. Hier is een lijst met enkele andere relevante codex-koppelingen voor jou ook: