Чи може WP-скрипт / завантажувач стилів використовуватися для об'єднання та gzip-скриптів та стилів у передній частині?


27

WP має гарний завантажувач JavaScript, включений у wp-admin: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-scripts.php

і завантажувач CSS: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-styles.php

Мені було цікаво, чи можна використовувати їх і в передній частині, а не лише адміністраторі, тому що вони можуть об'єднати всі скріплені сценарії та подати їх як єдиний gzipped файл


Хіба це не просто запитання "Чи можу я використовувати анкети для сторінок, які не є адміністратором?" .. Відповідь на це була б Так.
t31о

5
@ t31os Питання полягає в тому, чи можна використовувати load-scriptpts.php та стилі load, щоб об'єднати та gzip стилі та сценарії, як це зроблено для адміністратора. Я уточнив назву питання.
Chris_O

Відповіді:


12

пізня відповідь

З короткого огляду:

Вам доведеться користуватися

  • include( admin_url().'load-scripts.php' );
  • і include( admin_url().'script-loader.php' );

Потім стрибайте $GLOBALS['wp_scripts']:

Використовувати…

$wp_scripts->default_dirs( array_merge( 
     $wp_scripts->default_dirs
    ,array( '/themes/your_theme/js/' ) 
); 

… Продовжити його.

А потім використовувати

$wp_scripts->add( $handle, $path_from_content_dir, false/array( $deps ), $ver ) 

додати сценарій.

Примітки:

  1. Нестиснені сценарії шукають .dev.js(коли SCRIPT_DEBUGє TRUE).
  2. Схоже, це можливо і для $wp_styles.
  3. EDIT: WP 3.5 змінить цю поведінку та використовуватиме .jsдля "dev" версії та ".min.js", коли ( SCRIPT_DEBUGє TRUE);

(Але я думаю, це буде працювати лише в тому випадку, якщо ви використовуєте плагін або mu-плагін.)

Це не перевірено, і я не впевнений, що це спрацює.


Зараз я намагаюся зробити щось подібне. Погано в тому, що load -cripts.php має exit()зрештою, тому ви нічого не можете робити згодом.
Бенджамін Інталь

Ця відповідь насправді врятувала мене від масового головного болю. Якщо SCRIPT_DEBUGце так true, то всі сценарії запускаються індивідуально, як у передній частині. Однак, якщо SCRIPT_DEBUGце false, здається, епдіеіе сценарії одночасно через load-scripts.php.
Майкл Еклунд

@MichaelEcklund Так, цей "перемикач" - постійні об'єднання або надання окремих файлів. Це ще з часів раніше вихідних карт та нині інструментів для розробників.
кайзер

6

Це дуже гарне запитання, і це буде чудовою особливістю для WordPress.

Деякі з інших відповідей не стосуються головного питання.

Мені було цікаво, чи можна використовувати їх і в передній частині, а не просто адміністраторі, тому що вони можуть об'єднати всі скріплені сценарії та подати їх як єдиний gzipped файл.

Ні, наразі неможливо використовувати вбудований завантажувач сценаріїв для об'єднання CSS та скриптів для переднього кінця.

Про це обговорювались на WP Hackers кілька років тому, і є доступний квиток на це вдосконалення , яке було прийнято, але для майбутнього випуску.


3

Якщо вам потрібно залишити CSS-файл на передньому кінці:

1) Зареєструйте стиль через wp_register_style ($ handle, $ src) 2) Гак wp_enqueue_style ($ ручка) у гачок wp_print_styles.

Якщо вам потрібно застосувати сценарій на передньому кінці:

1) Зареєструйте стиль через wp_register_script ($ handle, $ src) 2) Гак wp_enqueue_script ($ ручка) у гачок wp_head.

(Примітка. Я б очікував, що для цього гачок wp_print_styles, але цей гак, мабуть, працює не так, як очікувалося.)


0

У мене є кілька сценаріїв, які ви можете побачити.

1. Combine.php - У ряді моїх тем я реалізував цей сценарій . Він підтримує подібну функціональність і може бути завантажений у вашу папку шаблонів і працювати з ними досить легко.

2. WP Minify - Цей плагін підтримує мінімізацію і з ним дуже легко працювати.

3. W3 Total Cache - це дуже потужний плагін продуктивності. Він також підтримує комбінацію скриптів / css, а також велику кількість інших функцій, наприклад завантаження комбінованих сценаріїв у CDN.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.