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

14 июл. 2011 г., 17:28:15
Просмотры: 31.5K
Голосов: 27

Я пытаюсь подключить JavaScript скрипт только когда кто-то добавляет или редактирует созданный мной произвольный тип записи "recipes". Сейчас скрипт работает, когда я делаю так:

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

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

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

1
Комментарии

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

Frits Frits
29 апр. 2016 г. 09:37:01
Все ответы на вопрос 3
3
57

Вы можете сделать это следующим образом (добавьте в ваш файл 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 );
14 июл. 2011 г. 17:38:47
Комментарии

Могу ли я также подключить стили с помощью этой функции?

Sisir Sisir
14 нояб. 2011 г. 13:16:55

@Sisir Используйте хук "admin_print_styles-{$page}". Переменная $page может содержать полный код add_(sub)menu_page() и затем использоваться для таргетинга страницы при использовании @see wp_enqueue_style().

kaiser kaiser
14 нояб. 2011 г. 20:04:08

Более современный способ сделать это: http://wordpress.stackexchange.com/a/34897/93169 (кстати, стал немного проще благодаря изменениям в функционале WordPress...)

Frits Frits
29 апр. 2016 г. 09:38:19
4
-3

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

Редактирование

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

14 июл. 2011 г. 17:39:49
Комментарии

Указанная страница удалена. Вот зеркало/архив на Wayback Machine.

Robert K Robert K
8 мар. 2012 г. 23:42:31

Спасибо за это. Я обновил свой ответ актуальной ссылкой.

Chip Bennett Chip Bennett
9 мар. 2012 г. 00:04:26

Почему бы не опубликовать решение здесь и не указать учебник в качестве источника...

Christine Cooper Christine Cooper
8 нояб. 2014 г. 18:33:14

Особенно если учесть, что все ссылки сейчас недействительны.

Carl Brubaker Carl Brubaker
8 июл. 2021 г. 22:39:27
0
-4

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

По сути, регистрируете все ваши скрипты и стили, а затем используете условные операторы для обертки ваших вызовов wp_enqueue_script или wp_enqueue_style.

31 мар. 2013 г. 22:22:27