Intereting Posts
Сортировка сообщений по настраиваемым значениям полей с помощью выпадающего меню Регистрация в перенаправлении на правильную страницу, но показывает выведенное содержимое до принудительного обновления Запрос WordPress CMS Пользовательские сообщения о состоянии сообщений, доступные для просмотра Автозаполнение или предложение из заголовков сообщений внутри плагина Добавление справочной информации на страницу редактирования пользовательских сообщений замените регистрационные формы wp-login.php с помощью пользовательских форм hook и используйте собственные формы с подтверждением формы wp-login Почему команда WP Core не разрешает функции filter_ *? Могу ли я запрашивать сообщения по таксономии условно на основе типа сообщения? Как сохранить параметры url все время, когда пользователь просматривает мой сайт? Есть ли какой-либо фильтр, чтобы отключить общий фронт в WordPress Изменен префикс wp_. Каким образом можно изменить любой префикс? Как изменить логотип на странице входа? Как отредактировать ссылку для комментария Принимать wp-admin в другом домене?

Как загружать скрипты и CSS для админов только при редактировании или добавлении сообщений

У меня есть плагин, который позволит администраторам выполнять определенные действия при добавлении или редактировании сообщения. Я использую таблицу стилей и javascript для этого плагина, который я хочу включить только в том случае, когда пост добавляется или редактируется. Могу ли я использовать следующие манипуляторы?

add_action('load-post.php', 'call_my_function'); add_action('load-post-new.php', 'call_my_function'); 

Внутри функции call_my_function у меня есть:

 function call_my_function() { $plugin_directory = "/wp-content/plugins/".dirname(plugin_basename(__FILE__)); $jssrc = $plugin_directory.'/js/my_plugin.js'; wp_enqueue_script("my_plugin_js", $jssrc); $csssrc = $plugin_directory.'/css/my_plugin.css'; wp_enqueue_style("my_plugin_css", $csssrc); } 

Приведенный выше код успешно загружает файлы CSS и Javascript, когда не вызывается из hook_ add_action. Он не работает успешно при вызове с этих крючков.

Solutions Collecting From Web of "Как загружать скрипты и CSS для админов только при редактировании или добавлении сообщений"

вы хотите использовать admin_print_scripts-(page_hook) и admin_print_styles-(page_hook) , поэтому в вашем случае:

 add_action('admin_print_scripts-post.php', 'call_my_function'); add_action('admin_print_scripts-post-new.php', 'call_my_function'); add_action('admin_print_styles-post.php', 'call_my_styles_function'); add_action('admin_print_styles-post-new.php', 'call_my_styles_function'); 

Он не работает успешно при вызове с этих крючков.

Я предлагаю вам проверить источник страницы, эти перехватчики работают очень хорошо для очередей. Я скопировал ваш код, чтобы проверить, так или иначе, и я вижу, как таблица стилей и сценарий ставятся в очередь при использовании перехватчиков.

То, как вы загружаете enqueues, выглядит неправильно, хотя я бы предложил следующее.

 function call_my_function() { wp_enqueue_script("my_plugin_js", plugins_url( '/js/my_plugin.js', __FILE__ ) ); wp_enqueue_style("my_plugin_css", plugins_url( '/css/my_plugin.css', __FILE__ ) ); } 

это работает для меня, в том числе скрипты на странице таможенного персонала в любом случае:

 add_action('admin_menu', 'register_my_custom_submenu_pages'); function register_my_custom_submenu_pages() { $email_menu = add_submenu_page( 'edit.php?post_type=events', 'Email Users', 'Email Users', 'edit_others_posts', 'email', 'email_callback' ); add_action( 'admin_print_styles-' . $email_menu, 'email_custom_css' ); add_action( 'admin_print_scripts-' . $email_menu, 'email_custom_js' ); } function email_callback() { echo '<div class="wrap">'; echo '<h2>'.get_admin_page_title().'</h2>'; include get_stylesheet_directory() . '/admin/email.php'; echo '</div>'; } function email_custom_css() { wp_enqueue_style( 'chosen',get_stylesheet_directory_uri().'/js/chosen/chosen.min.css' ); }; function email_custom_js() { wp_enqueue_script( 'chosen', get_stylesheet_directory_uri().'/js/chosen/chosen.jquery.min.js', array('jquery')); }; 

сокращенно это может перевести для вас:

 add_action( 'admin_print_styles-post.php', 'custom_css_load' ); add_action( 'admin_print_styles-post-new.php', 'custom_css_load' ); add_action( 'admin_print_scripts-post.php', 'custom_js_load' ); add_action( 'admin_print_scripts-post-new.php', 'custom_js_load' ); function custom_css_load() { wp_enqueue_style( 'my_styles', plugins_url( '/css/my_plugin.css', __FILE__ ) ); }; function custom_js_load() { wp_enqueue_script( 'my_scripts', plugins_url( '/js/my_plugin.js', __FILE__ ), array('jquery')); }; 

Не забывайте загружать после jQuery, если ваш js-код от него зависит.

Я не тестирую это, так что сделайте с ним, как вам будет угодно 🙂