Uczę się o wtyczkach i skrótach. Zauważyłem, że kiedy aktywuję wtyczkę, jej kod ładuje się na wszystkich moich stronach - nawet na stronach, które nie mają mojego krótkiego kodu. (Nie mam na myśli treści vs. stron administracyjnych). Na niektórych stronach z treściami używam określonego krótkiego kodu, a na innych stronach z treściami nie - ale w każdym razie kod wtyczki jest ładowany. Jak to zrobić, aby wtyczka była dołączana tylko na stronach, na których używany jest krótki kod?
Więcej szczegółów:
Powiedzmy, że mam wtyczkę, która tworzy lightbox. Aktywuję wtyczkę. Na mojej stronie „Cool Images” używam shortcode, aby utworzyć lightbox. Kiedy zaznaczam opcję Wyświetl źródło na mojej stronie „Informacje”, która nie używa skrótu lightbox, widzę, że kod wtyczki lightbox został załadowany. Moje strony będą ładować się szybciej, jeśli napiszę wtyczkę, tak aby jej kod był ładowany tylko na stronach, na których jest potrzebny. czy to możliwe? W przeciwnym razie będę niepotrzebnie ładować kod wielu wtyczek na stronach. Jakieś pomysły?
źródło
Odpowiedzi:
WP v3.3 dał nam możliwość uruchamiania wp_enqueue_script na środku strony. Bilet 9346
To znacznie ułatwiło włączenie JS z większą szczegółowością (przynajmniej przy użyciu skrótów). Tutaj jquery zostanie uwzględnione tylko po uruchomieniu naszego shortcode.
źródło
Sprawdź zmienne interfejsu administratora
Jeden element menu to szczególny przypadek: komentarze, ponieważ są rejestrowane za pomocą
add_WHATEVER_(submenu)page()
interfejsu API.Są to niezgodne i zakodowane na stałe w rdzeniu wp. Pamiętaj, że nie wszystkie są ustawione na wszystkich stronach.
Podłącz do haków interfejsu użytkownika specyficznych dla strony
Są też specjalne, specyficzne dla strony haczyki, na które można spojrzeć
admin-footer.php
iadmin-header.php
:Kilka przykładów w prawdziwym świecie: Ekran postu
Jest też
$hook_suffix
coś, co możesz sprawdzić w celu kolejkowania skryptów, właśnie wtedy, gdy chwytasz swoją akcję:Aktualizacja
Aby uzyskać łatwiejszy (1 kliknięcie) dostęp do tych danych / informacji, stworzyliśmy darmową, przyjazną dla programistów wtyczkę o nazwie „(WCM) Current Admin Info” , która jest dostępna na GitHub . Wtyczkę można wkrótce znaleźć w oficjalnym repozytorium wp.org .
Zrzuty ekranu
Aby wyświetlić podgląd tego, co otrzymujesz dzięki tej wtyczce:
źródło
Mógłby zrobić coś w stylu (w header.php):
Sprawdza, czy bieżącym ładowaniem jest strona czy post, a następnie pobiera treść i wyszukuje Twój krótki kod. Po znalezieniu wykonuje swoją funkcję.
źródło
get_shortcode_regex()
?Najprostszym sposobem jest sprawdzenie krótkiego kodu.
źródło
get_shortcode_regex()
na to.@kaiser zanotował
get_shortcode_regex()
kilka razy w tym wątku, pomyślałem, że podam przykład, jak go używać. Kod pochodzi w dużej mierze ze stronyget_shortcode_regex()
Referencje do kodu WordPress.źródło
Znalazłem to rozwiązanie :
źródło