Jak wymieniać skrypty na niestandardowych stronach dodawania / edycji postów?


23

Próbuję kolejkować skrypt JS tylko wtedy, gdy ktoś dodaje lub edytuje niestandardowy typ postu, który utworzyłem, zwany „przepisami”. Obecnie skrypt działa poprawnie, gdy to robię:

if (is_admin()){
    wp_enqueue_script( 'my-script' );
}

Ale to ładuje go na każdej stronie administratora, zakładam, że muszę podpiąć go do funkcji, ale nie mam pojęcia, co by to było.

Z góry dziękuję!


Do wykorzystania w przyszłości zostało udzielone podobne pytanie z tym, co według mnie było łatwiejsze: wordpress.stackexchange.com/q/34894/93169
Frits

Odpowiedzi:


43

Możesz to zrobić w następujący sposób (wstaw functions.php):

function add_admin_scripts( $hook ) {

    global $post;

    if ( $hook == 'post-new.php' || $hook == 'post.php' ) {
        if ( 'recipes' === $post->post_type ) {     
            wp_enqueue_script(  'myscript', get_stylesheet_directory_uri().'/js/myscript.js' );
        }
    }
}
add_action( 'admin_enqueue_scripts', 'add_admin_scripts', 10, 1 );

Czy mogę kolejkować styl za pomocą tej funkcji?
Sisir,

1
@Sisir Użyj "admin_print_styles-{$page}"haka. $pagemoże przechowywać cały add_(sub)menu_page()kod i być używany do kierowania na stronę podczas używania @see wp_enqueue_style().
kaiser

Bardziej aktualny sposób na zrobienie tego: wordpress.stackexchange.com/a/34897/93169 (okazuje się też, że jest trochę łatwiejszy dzięki zmianom funkcjonalności w wordpress ...)
Frits

-2

Jest do tego haczyk i jest bardzo prosty w użyciu. Zobacz ten samouczek, aby zobaczyć przykładową implementację .

Edytować

Justin przeniósł samouczki z DevPress na swoją osobistą stronę. Oto zaktualizowany link do samouczka .


Wymieniona strona zniknęła. Oto lustro / archiwum na maszynie Wayback .
Robert K

Dziękuję za to. Zaktualizowałem swoją odpowiedź aktualnym linkiem.
Chip Bennett,

3
Dlaczego nie opublikować rozwiązania tutaj i połączyć samouczek jako źródło ...
Christine Cooper

-3

Rootstheme (oparty na Twitterze Bootstrap) ma naprawdę elegancki sposób ładowania skryptów w zależności od typu strony / postu, jak widać w funkcji root_scripts, którą można zobaczyć tutaj na github .

Zasadniczo zarejestruj wszystkie swoje skrypty i style, a następnie posiadaj instrukcje warunkowe, które zawijają twoje instrukcje wp_enqueue_script lub wp_enqueue_style .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.