Как поставить в очередь скрипты на пользовательских страницах добавления / редактирования постов?

23

Я пытаюсь поставить в очередь сценарий JS, только когда кто-то добавляет или редактирует пользовательский тип записи, который я создал, называемый «рецепты». В настоящее время скрипт работает нормально, когда я делаю это:

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

Но это загружает его на каждой странице администратора, я предполагаю, что мне нужно подключить его к функции, но я не знаю, что это будет.

Заранее спасибо!

Хавьер Вильянуэва
источник
Для дальнейшего использования на аналогичный вопрос был дан ответ, который, как мне кажется, был проще: wordpress.stackexchange.com/q/34894/93169
Фриты,

Ответы:

43

Вы можете сделать это так (вставить в свой 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 );
mike23
источник
Могу ли я поставить в очередь стиль, используя эту функцию?
Сисир
1
@Sisir Используй "admin_print_styles-{$page}"крючок. $pageможет содержать полный add_(sub)menu_page()код и использоваться для затем целевой страницы при использовании @see wp_enqueue_style().
Кайзер
Более современный способ сделать это: wordpress.stackexchange.com/a/34897/93169 (также, оказывается, немного легче благодаря изменениям в WordPress ...)
Frits
-2

Для этого есть крючок, и он очень прост в использовании. Смотрите этот учебник для примера реализации .

редактировать

Джастин перенес свои уроки из DevPress на свой личный сайт. Вот обновленная ссылка на учебник .

Чип Беннетт
источник
Указанная страница исчезла. Вот зеркало / архив на машине Wayback .
Роберт К
Спасибо за это. Я обновил свой ответ текущей ссылкой.
Чип Беннетт
3
Почему бы не опубликовать решение здесь и не связать учебник как источник ...
Кристина Купер
-3

Rootstheme (который основан на Twitter Bootstrap) имеет действительно элегантный способ загрузки скриптов в зависимости от типа страницы / записи, как показано в функции roots_scripts, которую можно увидеть здесь на github .

В основном, зарегистрируйте все свои скрипты и стили, затем используйте условные операторы, которые обертывают ваши операторы wp_enqueue_script или wp_enqueue_style .

FLOQ Design
источник