WordPress zawiera kilka domyślnych skryptów, których możesz użyć do zasilania motywów i wtyczek. jQuery to powszechnie używany skrypt, podobnie jak TinyMCE. Ale co, jeśli chcesz zintegrować swój własny skrypt jQuery?

Niedawno pokazaliśmy, jak poprawnie dodać skrypty jQuery do instalacji. WordPress używa tego samego wewnętrznego mechanizmu, co oznacza, że ​​możemy usunąć lub nawet zastąpić skrypty w kolejce naszymi własnymi skryptami.

W tym samouczku pokażę Ci, jak to zrobić wyrejestrować Istniejące skrypty, dzięki czemu możesz dodawać własne skrypty. Przedstawimy Ci także różne okoliczności, w których możesz to zrobić i powiemy, dlaczego niektórzy uważają, że usunięcie wewnętrznego skryptu jest nieodpowiedzialne.

Po co modyfikować wewnętrzne skrypty: przypadek jQuery?

Istnieje szereg scenariuszy, w których możesz chcieć zmodyfikować załadowane skrypty wewnętrzne. Na przykład WordPress obecnie domyślnie używa jQuery 1.11.3, jednak najnowsza wersja to w rzeczywistości 1.12.3 lub 2.2.3. Jeśli piszesz aplikację, która opiera się na zaawansowanych funkcjach jQuery, może być konieczne użycie nowszej wersji skryptu.

Spotkałem się również z sytuacją, w której stara wtyczka powodowała problemy z nieaktualnymi skryptami. W tym przypadku klient polegał na wtyczce, ale załadowany skrypt nie był faktycznie używany. Myśleliśmy, że usunięcie tego jest najlepszą opcją, ale zamiast bezpośrednio modyfikować kod wtyczki, co uniemożliwiłoby przyszłe aktualizacje, zdecydowaliśmy się użyć nowej wtyczki do zmodyfikowania załadowanych skryptów.

Należy pamiętać, że chociaż istnieją uzasadnione przypadki, w których można usunąć i zmienić skrypty ładowane przez rdzeń WordPress oraz inne wtyczki lub motywy, należy zawsze pomyśleć dwa razy i postępować ostrożnie.

Jeśli wymusisz nową wersję jQuery na swoim Witryna internetowana przykład może powodować nieprzewidziane problemy ze zgodnością. Powinieneś zawsze testować WordPress lokalnie, jeśli to możliwe, i unikać modyfikowania/usuwania skryptów, chyba że jest to absolutnie konieczne.

Czy powinniśmy usunąć kody wewnętrzne z WordPress

Jak zmodyfikować skrypty

Dzięki magii WordPress możesz modyfikować dowolny skrypt wbudowany w Twój motyw, a nawet stworzyć wtyczkę, która zrobi to za Ciebie. Oznacza to, że nie musisz (i nie będzie!) Zmieniać oryginalnego kodu, który ładuje złośliwy skrypt. Dam ci kilka przykładów.

Załóżmy, że Twój motyw używa skryptu, który chcesz usunąć lub zastąpić. W takim przypadku możesz utworzyć motyw podrzędny i załadować wymagany kod.

Jeśli chcesz zmodyfikować skrypty zawarte we wtyczkach, możesz dokonać niezbędnych zmian w swoim motywie potomnym lub w nowej wtyczce. W zależności od zakresu projektu polecam stworzenie wtyczki specjalnie w celu modyfikacji skryptów innych wtyczek.

Jeśli chcesz edytować podstawowy skrypt WordPress, najlepiej zrobić to w pisanym produkcie. Jeśli pracujesz z wtyczką, powinieneś to zrobić, jeśli jest to motyw, musisz to zrobić w pliku functions.php.

„Wyrejestrowanie” skryptów

Jeśli nie sprawdziłeś jeszcze poprzedniego samouczka, jak poprawnie dodać skrypt w WordPress, możesz to zrobić teraz i wrócić. Widzieliśmy, że metodą dodawania skryptów do WordPressa jest ich rejestracja. Ich usunięcie jest oczywiście procesem odwrotnym, co oznacza „wyrejestrowanie” lub raczej wyrejestrowanie. Robi się to za pomocą funkcji wp_deregister_script () w następujący sposób:

wp_deregister_script ('jquery');

Jedynym parametrem, którego tu potrzebujesz, jest przestrzeń nazw skryptu. Przestrzeń nazw jest podawana w momencie zapisania skryptu i możesz przeczytać w moim poście na temat dodawania jQuery do WordPress, aby uzyskać bardziej szczegółowe informacje.

Użycie powyższego kodu całkowicie usunie skrypt jQuery.

Zastępowanie skryptów

Jeśli chcesz zastąpić skrypt, nie wystarczy po prostu zapisać go z nowymi parametrami (zostaną one zignorowane). Musisz wyrejestrować, a następnie ponownie zarejestrować skrypt. Oto szybki przykład:

function my_enqueued_assets () {wp_deregister_script ('jquery'); wp_enqueue_script ('nazwa-skryptu', '//code.jquery.com/jquery-2.2.3.min.js', tablica (), '2.2.3'); } add_action („wp_enqueue_scripts”, „my_enqueued_assets”);

Znajdź zapisane skrypty

Jeśli szukasz wszystkich skryptów zapisanych przez WordPress, masz szczęście. Zajrzyj do dokumentacji wp_enqueue_scripts, a znajdziesz tabelę na wyciągnięcie ręki.

Znalezienie skryptów zapisanych przez wtyczki jest jednak nieco trudniejsze. Możesz wyświetlić listę wszystkich skryptów w kolejce, zrzucając plik treść zmiennej $wp_scripts.

globalne $ wp_scripts; Echo ' ';
var_dump ($ wp_scripts);
Echo ' ';

Inną metodą, której używam, jest wyszukiwanie wp_enqueue_scripts w moim katalogu wtyczek. Dzięki temu mogę zobaczyć, która wtyczka jest odpowiedzialna za który skrypt w mojej witrynie.

Dlaczego skrypty zastępcze nie zawsze są dobrym pomysłem

Podczas gdy niektórzy programiści motywów i wtyczek mogą uznać za absolutnie konieczne załadowanie własnych skryptów, aw szczególności innej wersji jQuery, w społeczności WordPress istnieją pewne kontrowersje dotyczące tego, czy ładowanie jest rzeczywiście właściwe. robić.

Ponieważ WordPress ładuje jQuery w trybie noConflict, jest bardzo mała szansa na wystąpienie konfliktu, dlatego motywy nie powinny zmieniać zachowania WordPressa, a zwłaszcza WordPress aktualizuje osadzoną wersję jQuery regularnie.

Podsumowując

Usuwając lub podmieniając skrypty, czego nie należy robić na co dzień, ważne jest, aby wiedzieć, jak to zrobić poprawnie, aby w sytuacji, w której będzie to konieczne, móc to zrobić bez zmartwień i „zepsucia” Twój blog.

Anulując subskrypcję skryptów za pomocą niestandardowej wtyczki, upewniasz się, że nie modyfikujesz kodu źródłowego WordPress lub motywu, którego nie jesteś autorem, co pozwoli ci zachować bezpieczeństwo kodu podczas aktualizacje.