Грузим стили и скрипты от LayerSlider только там, где есть шорткод


Извечная проблема у 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');
}

источник