Intereting Posts
Как отменить действие / фильтр WordPress при использовании ООП с анонимным обратным вызовом Получить определенную категорию сообщений при использовании настраиваемого типа сообщений Действие save_post внутри настраиваемого класса метабокса не работает Добавление настраиваемых параметров форматирования сообщений в пользовательские типы сообщений Каков наилучший подход к странице регистрации WordPress и CM? Каков канонический способ ссылки на страницы? Фильтровать категории сообщений WordPress с помощью jquery / ajax и pagination? Как загрузить изображение без идентификатора сообщения с помощью нового медиа-загрузчика? Cron Lock Timeout, когда использовать? Как получить значение wpnonce? Получите массив meta_values ​​для пользователя meta_key Создание базы данных или перенаправление Как удалить дату из показа в мета-описании Как правильно префикс URL-адреса блога Как планировать несколько сообщений при добавлении новых

Загружать файлы js / css только на определенные страницы пользовательского интерфейса администратора

Как адаптировать это решение для работы с моим плагином? (См. Ссылку).

Я устанавливаю скрипт css и js следующим образом:

function my_plugin_init() { wp_enqueue_script('my_plugin_script', plugins_url('js/the_filepath.js', __FILE__), array('jquery')); wp_enqueue_style( 'my_plugin_css', plugins_url( '/css/the_filepath.css', __FILE__ ) ); } add_action('init', 'my_plugin_init'); 

Я попытался поместить это в функцию functions.php темы, но это не сработало:

 function remove_my_plugin_extras() { remove_action('init', 'my_plugin_init'); } if( !is_page('My_Page') ) { add_action('wp_head', 'remove_my_plugin_extras'); } 

Скрипт и css все еще загружены. Как адаптировать решение в этом случае?

Solutions Collecting From Web of "Загружать файлы js / css только на определенные страницы пользовательского интерфейса администратора"

Правильные крючки

  // Use both for scripts & styles *) wp_enqueue_scripts // (for the frontend) login_enqueue_scripts // (for the login screen) admin_enqueue_scripts // (for the admin dashboard) 

*) Прочтите эту статью @wpdevel .

Дальнейшее чтение в Кодексе о трех крючках

  • admin_menu
  • network_admin_menu
  • user_admin_menu

В admin_enqueue_scripts вы также имеете аргумент: $hook_suffix :

 add_action( 'admin_enqueue_scripts', function( $hook ) { var_dump( $hook ); } ); 

Крюки для страницы администратора

При регистрации страницы меню администратора (суб) вы можете сохранить результат, который является крючком страницы, в переменную:

 function register_admin_page() { // Register (sub)menu page $hook_suffix = add_submenu_page( $your_args_array ); // Add styles to hook add_action( "load-{$hook_suffix}", 'callback_function' ); } // Use one of those hooks to register the page add_action( 'admin_menu', 'register_admin_page' ); add_action( 'user_admin_menu', 'register_admin_page' ); add_action( 'network_admin_menu', 'register_admin_page' ); // Register your styles & scripts in here function callback_function() { // do stuff } 

Доступные глобальные переменные Admin для проверки

Следующие

 global $hook_suffix, $typenow, $pagenow, $self, $parent_file, $submenu_file 

доступны на широком диапазоне страниц администрирования. Используйте их, чтобы проверить, хотите ли вы на запрошенной странице, и только потом делать что-то.

 // Example if ( 'edit.php' !== $GLOBALS['pagenow'] ) return; 

Даже лучше, чем тестирование против переменной, которая может быть сброшена на лету (пример) …

 $GLOBALS['wp'] = array( 'lost', 'my', 'contents', ); 

… использует объект \WP_Screen на страницах администратора:

 add_action( 'admin_enqueue_scripts', function( $hook ) { /** @var \WP_Screen $screen */ $screen = get_current_screen(); var_dump( $screen ); if ( 'post.php' !== $screen->base ) return; } );