Я создаю виджет, и мне нужно поставить в очередь скрипт для формы виджетов на панели администратора (и настраивателя). Я пробовал много способов:
function cf_enqueue_admin_script() { wp_enqueue_script('admin_custom_script', get_template_directory_uri() . '/js/admin.js', array('jquery', 'wp-color-picker'), false, true); } add_action('admin_enqueue_scripts', 'cfstcyr_admin_custom_script');
а также
function cf_enqueue_admin_script() { wp_enqueue_script('admin_custom_script', get_template_directory_uri() . '/js/admin.js', array('jquery', 'wp-color-picker'), false, true); } add_action('admin_print_scripts-widgets.php', 'cf_enqueue_admin_script'));
а также
class cfstcyr_plugin extends WP_Widget { public function __construct() { ... add_action('admin_print_scripts-widgets.php', array(&$this, 'load_scripts')); } function load_scripts() { wp_enqueue_script('admin_custom_script', get_template_directory_uri() . '/js/admin.js', array('jquery', 'wp-color-picker'), false, true); } }
а также
class cfstcyr_plugin extends WP_Widget { public function form() { ... wp_enqueue_script('admin_custom_script', get_template_directory_uri() . '/js/admin.js', array('jquery', 'wp-color-picker'), false, true); } }
Он работает, но когда я сохраняю, не обновляя страницу, или когда я нахожусь в Настройщике, это не работает. Я также пробовал:
class cfstcyr_plugin extends WP_Widget { public function form() { ... <script type="text/javascript"> ... </script> } }
Но это вызывает многократное время.
Мне действительно нужно добавить Javascript (Media Uploader, Color Picker и т. Д.), Но я не могу заставить его работать после сохранения страницы без обновления и в настройке.
Так что я хочу: my_custom_widget.php
class cfstcyr_plugin extends WP_Widget { public function form() { // Option form for widget <p>Click here!</p> } }
и мой widget.js
(function ($) { $(document).ready(function () { $('.p').click(function() { alert('Hello World!'); }); }); }(jQuery));
Большое спасибо!
Это официальный способ добавить пользовательский скрипт или таблицы стилей в WordPress
add_action('wp_enqueue_scripts', 'load_custom_files', 11); function load_custom_files() { wp_enqueue_style('fort-awesome', get_template_directory_uri() . '/my-styles.min.css', array(), null, 'all'); wp_deregister_script('jquery'); // If you want to remove wp prebuilts scripts wp_enqueue_script('jquery', get_template_directory_uri() . '/my-js.min.js', '', '3.1.0', true); }
Ссылка на файл javascript wp enqueue
Ссылка на файлы стилей Wp enqueue