Як включити CSS та jQuery до мого плагіна WordPress?


Відповіді:


80

Для стилів wp_register_style( 'namespace', 'http://locationofcss.com/mycss.css' );

Потім використовуйте: wp_enqueue_style('namespace'); де б ви не хотіли завантажити css.

Сценарії наведені вище, але швидший спосіб завантаження jquery - це просто використання enqueue, завантаженого в init для сторінки, на яку ви хочете його завантажити: wp_enqueue_script('jquery');

Якщо, звичайно, ви не хочете використовувати репозиторій google для jquery.

Ви також можете умовно завантажити бібліотеку jquery, від якої залежить ваш сценарій:

wp_enqueue_script('namespaceformyscript', 'http://locationofscript.com/myscript.js', array('jquery'));

Оновлення вересня 2017 р

Цю відповідь я написав деякий час тому. Я маю пояснити, що найкраще місце для розміщення ваших сценаріїв та стилів знаходиться в wp_enqueue_scriptsчерзі. Так наприклад:

add_action('wp_enqueue_scripts', 'callback_for_setting_up_scripts');
function callback_for_setting_up_scripts() {
    wp_register_style( 'namespace', 'http://locationofcss.com/mycss.css' );
    wp_enqueue_style( 'namespace' );
    wp_enqueue_script( 'namespaceformyscript', 'http://locationofscript.com/myscript.js', array( 'jquery' ) );
}

wp_enqueue_scriptsДія буде встановити речі для «зовнішнього інтерфейсу». Ви можете використовувати admin_enqueue_scriptsдію для бекенда (де завгодно в межах wp-admin) та login_enqueue_scriptsдію для сторінки входу.


Для тих з нас, хто новачок у розробці плагінів, не могли б ви пояснити "де ви хочете завантажити css?" Чи потрібно нам створювати шаблони сторінок для кожної сторінки, де ми хочемо це викликати, а потім вручну викликати його в заголовку?
user658182

@ user658182 use add_action('init', 'function_name');, де ім'я_функції - це функція, яка створює ресурси в черзі.
Райан Тейлор,

1
Як ви можете змусити таблицю стилів працювати, лише якщо є певний плагін?
Farhad

Будь ласка, не могли б ви надати нам будь-яке посилання на хорошу документацію, пов'язану з новим способом її досягнення;) !!! Дякую
HanniBaL90

чи потрібно щось повторно ініціалізувати після команди enqueue? або просто перезавантажити сторінку?
Джанніс Цагаракіс,

58

Помістіть його у init()функцію для вашого плагіна.

function your_namespace() {
    wp_register_style('your_namespace', plugins_url('style.css',__FILE__ ));
    wp_enqueue_style('your_namespace');
    wp_register_script( 'your_namespace', plugins_url('your_script.js',__FILE__ ));
    wp_enqueue_script('your_namespace');
}

add_action( 'admin_init','your_namespace');

Мені також знадобився деякий час, перш ніж я знайшов (для мене) найкраще рішення - надійне імхо.

Ура


Куди йде цей код? functions.php? Plugin.php?
user658182

1
@ user658182, ваш плагін WordPress, мабуть, повинен мати власний файл .php або папку в wp-content / plugins /
Райан Тейлор,

22

Включити CSS та jQuery у ваш плагін легко, спробуйте наступне:

// register jquery and style on initialization
add_action('init', 'register_script');
function register_script() {
    wp_register_script( 'custom_jquery', plugins_url('/js/custom-jquery.js', __FILE__), array('jquery'), '2.5.1' );

    wp_register_style( 'new_style', plugins_url('/css/new-style.css', __FILE__), false, '1.0.0', 'all');
}

// use the registered jquery and style above
add_action('wp_enqueue_scripts', 'enqueue_style');

function enqueue_style(){
   wp_enqueue_script('custom_jquery');

   wp_enqueue_style( 'new_style' );
}

Я знайшов це чудове вирізане з цього сайту Як включити jQuery та CSS у WordPress - Шлях WordPress

Сподіваюся, що це допомагає.


10

Прийнята відповідь неповна. Ви повинні використовувати правильний гачок:wp_enqueue_scripts

Приклад:

    function add_my_css_and_my_js_files(){
        wp_enqueue_script('your-script-name', $this->urlpath  . '/your-script-filename.js', array('jquery'), '1.2.3', true);
        wp_enqueue_style( 'your-stylesheet-name', plugins_url('/css/new-style.css', __FILE__), false, '1.0.0', 'all');
    }
    add_action('wp_enqueue_scripts', "add_my_css_and_my_js_files");

Дякую! Я боровся з цим.
Джош

8

Просто щоб додати відповідь @ pixeline (спробував додати простий коментар, але сайт сказав, що мені потрібна 50 репутація).

Якщо ви пишете свій плагін для розділу адміністратора, вам слід використовувати:

add_action('admin_enqueue_scripts', "add_my_css_and_my_js_files");

Admin_enqueueu_scripts - це правильний хук для розділу адміністратора, використовуйте wp_enqueue_scripts для інтерфейсу.



5

Спочатку потрібно зареєструвати стиль і css за допомогою функцій wp_register_script () та wp_register_style ()

 //registering javascript and css
 wp_register_script ( 'mysample', plugins_url ( 'js/myjs.js', __FILE__ ) );
 wp_register_style ( 'mysample', plugins_url ( 'css/mystyle.css', __FILE__ ) );

Після цього ви можете викликати функції wp_enqueue_script () та wp_enqueue_style () для завантаження js та css на потрібну сторінку

wp_enqueue_script('mysample');
wp_enqueue_style('mysample');

Я знаходжу приємний приклад тут http://wiki.workassis.com/wordpress-create-advanced-custom-plugin-using-oop/


3

Дуже просто:

Додавання JS / CSS в інтерфейс :

function enqueue_related_pages_scripts_and_styles(){
        wp_enqueue_style('related-styles', plugins_url('/css/bootstrap.min.css', __FILE__));
        wp_enqueue_script('releated-script', plugins_url( '/js/custom.js' , __FILE__ ), array('jquery','jquery-ui-droppable','jquery-ui-draggable', 'jquery-ui-sortable'));
    }
add_action('wp_enqueue_scripts','enqueue_related_pages_scripts_and_styles');

Додавання JS / CSS до адміністратора WP :

function enqueue_related_pages_scripts_and_styles(){
        wp_enqueue_style('related-pages-admin-styles',  get_stylesheet_directory_uri() . '/admin-related-pages-styles.css');
        wp_enqueue_script('releated-pages-admin-script', plugins_url( '/js/custom.js' , __FILE__ ), array('jquery','jquery-ui-droppable','jquery-ui-draggable', 'jquery-ui-sortable'));
    }
add_action('admin_enqueue_scripts','enqueue_related_pages_scripts_and_styles');

1

Ви можете використовувати наступну функцію, щоб поставити сценарій або стиль із додатка в чергу.

function my_enqueued_assets() {
    wp_enqueue_script('my-js-file', plugin_dir_url(__FILE__) . '/js/script.js', '', time());
    wp_enqueue_style('my-css-file', plugin_dir_url(__FILE__) . '/css/style.css', '', time());
}
add_action('wp_enqueue_scripts', 'my_enqueued_assets');

0

Ви можете додати сценарії та css у задній та зовнішній кінці за допомогою наступного коду: Це простий клас, і функції викликаються об’єктно-орієнтованим способом.

class AtiBlogTest {
function register(){
    //for backend
    add_action( 'admin_enqueue_scripts', array($this,'backendEnqueue'));
    //for frontend
    add_action( 'wp_enqueue_scripts', array($this,'frontendEnqueue'));
}
function backendEnqueue(){
    wp_enqueue_style( 'AtiBlogTestStyle', plugins_url( '/assets/css/admin_mystyle.css', __FILE__ ));
    wp_enqueue_script( 'AtiBlogTestScript', plugins_url( '/assets/js/admin_myscript.js', __FILE__ ));
}
function frontendEnqueue(){
    wp_enqueue_style( 'AtiBlogTestStyle', plugins_url( '/assets/css/front_mystyle.css', __FILE__ ));
    wp_enqueue_script( 'AtiBlogTestScript', plugins_url( '/assets/js/front_myscript.js', __FILE__ ));
}
}

if(class_exists('AtiBlogTest')){
$atiblogtest=new AtiBlogTest();
$atiblogtest->register();
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.