Sprawdź, czy skrypt / styl został umieszczony w kolejce / zarejestrowany

31

Czy można sprawdzić, czy skrypt lub styl został zarejestrowany przy użyciu wp_register_script/_stylelub wp_enqueue_script/_style? Wszystkie funkcje nie zwracają wartości i jestem całkowicie nieświadomy.

Potrzebuję przełączać się między różnymi funkcjami w zależności od bibliotek arkuszy stylów i skryptów, które oferuję.

Dziękuję Ci!

kajzer
źródło

Odpowiedzi:

49

Istnieje funkcja o nazwie wp_script_is( $handle, $list ). $listmoże być jednym z:

  • „zarejestrowany” - został zarejestrowany za pośrednictwem wp_register_script()
  • „kolejka” - została umieszczona w kolejce wp_enqueue_script()
  • „gotowe” - zostało wydrukowane
  • „to_do” - zostanie wydrukowane

To samo dotyczy wp_style_is().

Annika Backstrom
źródło
11

Sprawdź $GLOBALS['wp_scripts']->registeredskrypty.

Przykład

function is_enqueued_script( $script )
{
    return isset( $GLOBALS['wp_scripts']->registered[ $script ] );
}

print (int) is_enqueued_script( 'l10n' );

$GLOBALS['wp_styles']->registered działa w ten sam sposób.

fuxia
źródło
1
Down przegłosował ten ze względu na brak kontroli poczytalności, pozostawia możliwość śmiertelnych błędów.
Backie,
2
@Backie, ale rozumiesz, że to dowód koncepcji?
fuxia
wp_script_is () jest lepszym i bezpieczniejszym rozwiązaniem (Adam Backstrom`) rozwiązanie
chrisjlee