2016-09-21 3 views
0

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

Оба они генерируют таблицы стилей и скрипты, но на мою тему и мой шаблон страницу и хотел бы только один таблица стилей и один сценарий (например: CSS/style.css и JS/app.js).

Я имею в виду, style.css будет иметь правила шаблона, но уже стили из плагина и т. Д. И app.js будет иметь jQuery minified, отдельные плагины (например, лайтбоксы и т. Д.) И мой собственный скрипт.

Как я могу это сделать? Обычно я использую хрюканье или глоток. Но могу ли я сказать, что функции тонны wp «не добавляют скрипты из плагинов в голове, но добавляют ли они в мой основной JS-файл»?

С наилучшими пожеланиями

ответ

2

Сценарии, которые загружаются через wp_head или wp_footer ставятся в очередь в Wordpress.

Если вы хотите удалить их и вместо этого загружать только одну единственную таблицу стилей и один JS-файл, тогда вам нужно будет удалить все остальные сценарии.

Во-первых, однако, вы должны определить, какие сценарии помещён, которые вы можете сделать, загрузив глобальные $wp_styles и $wp_scripts переменные и итерацию через них так:

function se_inspect_styles() { 
    global $wp_styles; 
    echo "<h2>Enqueued CSS Stylesheets</h2><ul>"; 
    foreach($wp_styles->queue as $handle) : 
     echo "<li>" . $handle . "</li>"; 
    endforeach; 
    echo "</ul>"; 
} 
add_action('wp_print_styles', 'se_inspect_styles'); 

function se_inspect_scripts() { 
    global $wp_scripts; 
    echo "<h2>Enqueued JS Scripts</h2><ul>"; 
    foreach($wp_scripts->queue as $handle) : 
     echo "<li>" . $handle . "</li>"; 
    endforeach; 
    echo "</ul>"; 
} 
add_action('wp_print_scripts', 'se_inspect_scripts'); 

Затем вы можете вручную DEQUEUE и дерегистрировать все эти сценарии, зацепив в wp_print_styles действия (для CSS-файлов) и wp_print_scripts действия (для JS-файлов), как показано ниже:

// Dequeue CSS 
function se_dequeue_unnecessary_styles() { 
    wp_dequeue_style('bootstrap-map'); 
     wp_deregister_style('bootstrap-map'); 
} 
add_action('wp_print_styles', 'se_dequeue_unnecessary_styles'); 

// Dequeue JS 
function se_dequeue_unnecessary_scripts() { 
    wp_dequeue_script('modernizr-js'); 
     wp_deregister_script('modernizr-js'); 
    wp_dequeue_script('project-js'); 
     wp_deregister_script('project-js'); 
} 
add_action('wp_print_scripts', 'se_dequeue_unnecessary_scripts'); 

Если требуется какой-либо из т он освободил сценарии, а затем просто добавьте их источник в свой файл grunt/gulp.

Наконец, вы захотите вставить в очередь один единственный скрипт CSS и JS, созданный grunt/gulp (хотя вы всегда можете просто ссылаться на них вручную из своих шаблонов, если вам это нравится).

Вот несколько примеров кода для этого:

function se_theme_js(){ 
    // Theme JS 
    wp_register_script('my-scripts', 
     get_template_directory_uri() . '/js/main.min.js', 
     array('jquery'), 
     null, 
     true); 
    wp_enqueue_script('my-scripts'); 
} 
add_action('wp_enqueue_scripts', 'se_theme_js'); 

function se_theme_styles() { 
    // Theme CSS 
    wp_register_style('my-style', 
     get_stylesheet_directory_uri() . '/css/main.min.css', 
     array(), 
     null, 
     'all'); 
    wp_enqueue_style('my-style'); 
} 
add_action('wp_enqueue_scripts', 'se_theme_styles');