Извечная проблема у LayerSlider - загружать свои скрипты и стили на всех страницах сайта не зависимо от того используется ли он или нет. Нашлось решение в виде доп.функции, которое проверяет наличие шорткода в теле поста и если не находит - отключает скрипты и стили. Код немного доработан под одну из последних версий:
/**
* Load LayerSlider Scripts only when shortcode is present
*
* Deregister Scripts from LayerSlider if no shortcode in content
* Using do_shortcode function? See: http://wordpress.stackexchange.com/questions/20854/conditionally-loading-javascript-css-for-shortcodes/75915#75915
*/
function check_for_layerslider_shortcode() {
global $post;
//Check content for layerslider shortcode
if (!has_shortcode($post->post_content, 'layerslider')) {
//no shortcode so run deenqueue function
add_action('wp_print_scripts', 'layerslider_deenqueue_scripts', 99999);
add_action('wp_print_styles', 'layerslider_deenqueue_scripts', 99999);
}
}
add_action('wp_enqueue_scripts', 'check_for_layerslider_shortcode');
/**
* Removes LayerSlider scripts
*/
function layerslider_deenqueue_scripts() {
wp_dequeue_script('layerslider_js');
wp_deregister_script('layerslider_js');
wp_dequeue_script('jquery_easing');
wp_deregister_script('jquery_easing');
wp_dequeue_script('transit');
wp_deregister_script('transit');
wp_dequeue_script('layerslider_transitions');
wp_deregister_script('layerslider_transitions');
wp_dequeue_style('layerslider_css');
wp_deregister_style('layerslider_css');
wp_dequeue_style('layerslider_custom_transitions');
wp_deregister_style('layerslider_custom_transitions');
wp_dequeue_style('layerslider_custom_css');
wp_deregister_style('layerslider_custom_css');
wp_dequeue_style('layerslider');
wp_deregister_style('layerslider');
wp_dequeue_script('greensock');
wp_deregister_script('greensock');
wp_dequeue_script('layerslider');
wp_deregister_script('layerslider');
wp_dequeue_script('layerslider-transitions');
wp_deregister_script('layerslider-transitions');
}

