Overbodige scripts uitschakelen

NB: Inmiddels zijn hier plugins voor, zoals autoptimize. Dat is veel praktischer.

Zet deze regels in de functions.php van het child theme. Door if ! toe te voegen als voorwaarde, schakel je het script uit voor de overige pagina’s.

N.a.v. tips op: http://www.wpbeginner.com/wp-tutorials/how-wordpress-plugins-affect-your-sites-load-time/

http://justintadlock.com/archives/2009/08/06/how-to-disable-scripts-and-styles
jcarousel scripts gevonden in: plugins/jj-nextgen-jquery-carousel/includes/functions.php
In geval je een script op alle pagina’s wil uitsluiten, behalve op een aantal pagina’s:

  if ( !is_page( array( 'page-slug', 'page-slug' ) ) ) {  
diverse scripts: accordion, nextgen gallery, jcarousel, nextgen-lightbox, photocrati-ajax, superslider, comment-reply, swf-object

NB: wb nextgen: hiermee schakel je ook het css bestand van nextgen uit; kopieer de code uit nggallery.css (uit wp-content/plugins/nextgen-gallery/css/nggallery.css). Als dat niet goed werkt, kan je dit bestand ook handmatig verwijderen of hernoemen. Het staat in de map wp-content/ngg_styles/nggallery.css

  add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );  function my_deregister_javascript() {  // jcarousel  if ( !is_front_page() ) {wp_deregister_script( 'jquery-jcarousel' );}  if ( !is_front_page() ) {wp_deregister_script( 'jquery-shuffle' );}  //superslider  if ( !is_page('gebruikte-programmas') ) {wp_deregister_script( 'accordion' );}  if ( !is_page('gebruikte-programmas') ) {wp_deregister_script( 'moocore' );}  if ( !is_page('gebruikte-programmas') ) {wp_deregister_script( 'moomore' );}  //cool video  if ( !is_page('video') ) {wp_dequeue_script( 'jquery.slideshow');}  if ( !is_page('video') ) {wp_dequeue_script( 'jquery.stripslashes');}  if ( !is_page('video') ) {wp_dequeue_script( 'jquery.fancybox');}  if ( !is_page('video') ) {wp_dequeue_script( 'jwplayer');}    {wp_deregister_script( 'nextgen_lightbox_context' );}//nextgen  {wp_deregister_script( 'photocrati_ajax' );}  {wp_deregister_script( 'comment-reply' );}//comment-reply  {wp_deregister_script( 'swfobject' );}//swfobject  //fullcalendar:  if ( !is_page('events') ){wp_deregister_script( 'WP_FullCalendar');}  }  

Zet in custom includes van het thema (geladen in header):

    add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );  function my_deregister_javascript() {  if ( !is_page('levensfeiten') ) {wp_deregister_script( 'hide-this-part-js' );}  }

Woocommerce. Gevonden op: http://gregrickaby.com/remove-woocommerce-styles-and-scripts/ NB: ging net goed op website dnaindebouw, met thema Suffusion. Winkelmandje bleef leeg na toevoegen bestelling.

  /**   * Manage WooCommerce styles and scripts.   */  function grd_woocommerce_script_cleaner() {  	  	// Remove the generator tag  	remove_action( 'wp_head', array( $GLOBALS['woocommerce'], 'generator' ) );    	// Unless we're in the store, remove all the cruft!  	if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {  		wp_dequeue_style( 'woocommerce_frontend_styles' );  		wp_dequeue_style( 'woocommerce-general');  		wp_dequeue_style( 'woocommerce-layout' );  		wp_dequeue_style( 'woocommerce-smallscreen' );  		wp_dequeue_style( 'woocommerce_fancybox_styles' );  		wp_dequeue_style( 'woocommerce_chosen_styles' );  		wp_dequeue_style( 'woocommerce_prettyPhoto_css' );  		wp_dequeue_style( 'select2' );  		wp_dequeue_script( 'wc-add-payment-method' );  		wp_dequeue_script( 'wc-lost-password' );  		wp_dequeue_script( 'wc_price_slider' );  		wp_dequeue_script( 'wc-single-product' );  		wp_dequeue_script( 'wc-add-to-cart' );  		wp_dequeue_script( 'wc-cart-fragments' );  		wp_dequeue_script( 'wc-credit-card-form' );  		wp_dequeue_script( 'wc-checkout' );  		wp_dequeue_script( 'wc-add-to-cart-variation' );  		wp_dequeue_script( 'wc-single-product' );  		wp_dequeue_script( 'wc-cart' );  		wp_dequeue_script( 'wc-chosen' );  		wp_dequeue_script( 'woocommerce' );  		wp_dequeue_script( 'prettyPhoto' );  		wp_dequeue_script( 'prettyPhoto-init' );  		wp_dequeue_script( 'jquery-blockui' );  		wp_dequeue_script( 'jquery-placeholder' );  		wp_dequeue_script( 'jquery-payment' );  		wp_dequeue_script( 'fancybox' );  		wp_dequeue_script( 'jqueryui' );  	}  }  add_action( 'wp_enqueue_scripts', 'grd_woocommerce_script_cleaner', 99 );
[collapse]
jmigrate

Om jquery-migrate te verwijderen: NB: controleer of er geen plugins zijn die hem nodig hebben! http://techglimpse.com/remove-extra-jquery-migrate-script-tag/ NB: jquery-migrate veroorzaakte storingen in de werking van de carousel op de voorpagina van mulderitmaatwerk.nl.web. Aldaar helemaal verwijderd.

  add_filter( 'wp_default_scripts', 'dequeue_jquery_migrate' );    function dequeue_jquery_migrate( &$scripts){   if(!is_admin()){   $scripts->remove( 'jquery');   $scripts->add( 'jquery', false, array( 'jquery-core' ), '1.10.2' );   }  }  

Je kan ook deze plugin gebruiken, die bijna hetzelfde doet, iets mooiere code:
https://github.com/cedaro/dequeue-jquery-migrate
Of de code gebruiken:

   */  function cedaro_dequeue_jquery_migrate( $scripts ) {  	if ( ! is_admin() && ! empty( $scripts->registered['jquery'] ) ) {  		$jquery_dependencies = $scripts->registered['jquery']->deps;  		$scripts->registered['jquery']->deps = array_diff( $jquery_dependencies, array( 'jquery-migrate' ) );  	}  }  add_action( 'wp_default_scripts', 'cedaro_dequeue_jquery_migrate' );  
[collapse]

Stijlen: Zoek voor de juiste naam van het uit te schakelen stijlbestand naar: wp_enqueue_style. Het gaat om de naam die direct daarna tussen aanhalingstekens staat.

Uitgeschakelde stijlen: jcarousel, auto thickbox, photonic, custom facebook feed, notify bar
  add_action( 'wp_print_styles', 'my_deregister_styles', 100 );  function my_deregister_styles() {  if ( !is_front_page() ) {wp_deregister_style( 'jquery-plugins-jcarousel-skin-tango' );}  {wp_deregister_style('thickbox');}  {wp_register_style('dashicons');}  {wp_register_style('cff_add_my_stylesheet');}  {wp_dequeue_style('notifybar',plugins_url('css/notifybar.css',__FILE__));}     if (is_front_page()) {wp_deregister_style( 'photonic' );}  }  }

Of in het algemeen:

function dequeue_my_css() {  wp_dequeue_style('my-css');  wp_deregister_style('my-css');    }  add_action('wp_enqueue_scripts','dequeue_my_css');  // add a priority if you need it  // add_action('wp_enqueue_scripts','dequeue_my_css',100);    

NB: dit werkt alleen als het stijlbestand met een enqueue of register is gedefinieerd. (uit: http://wordpress.stackexchange.com/questions/85512/how-to-remove-css-file-in-the-header-using-wordpress-functions

 

NB: ik kreeg het stijlbestand van Advanced recent posts niet op deze manier uitgeschakeld. Er zijn meer mensen die hier last van hebben en hopelijk verdwijnt het met een volgende update.
Voor u deze maatregel genomen, waarmee ik hem ook uitschakelde:
regel 26 uit gecomment: in bestandje van de plugin: advanced-recent-posts-widget.php”

 //include_once( 'includes/advanced-recent-posts-widget-display.php' ); 

Hier staat nl alleen iets over het te laden stijlbestand. Toegepast bij dnaindebouw.nl

[collapse]
contactform7

 http://code.tutsplus.com/articles/optimizing-contact-form-7-for-better-performance–wp-31255

    // Deregister Contact Form 7 styles  add_action( 'wp_print_styles', 'aa_deregister_styles', 100 );  function aa_deregister_styles() {      if ( ! is_page( 'contact-us' ) ) {          wp_deregister_style( 'contact-form-7' );      }  }    // Deregister Contact Form 7 JavaScript files on all pages without a form  add_action( 'wp_print_scripts', 'aa_deregister_javascript', 100 );  function aa_deregister_javascript() {      if ( ! is_page( 'contact-us' ) ) {          wp_deregister_script( 'contact-form-7' );      }  }

Bij meer pagina’s:

is_page( array( 42, 'about-me', 'Contact' ) );
[collapse]
nextgen galleries

NB: next gen galleries: zet zoveel mogelijk zelf al van alles uit bij de instellingen van next gen.

[collapse]
jetpack: stijl en script

Gevonden op: https://gist.github.com/jeherve/df4e349a209d532a7978

    // First, make sure Jetpack doesn't concatenate all its CSS  add_filter( 'jetpack_implode_frontend_css', '__return_false' );  // Then, remove each CSS file, one at a time  // You probably won't need them all, unless you use all the modules, and all the themes! :)  // Some of these are also only loaded on specific admin pages, so it wouldn't affect your readers  function jeherve_remove_all_jp_css() {          wp_deregister_style( 'AtD_style' );                    // After the Deadline          wp_deregister_style( 'jetpack_likes' );                // Likes          wp_deregister_style( 'jetpack_related-posts' );        // Related Posts          wp_deregister_style( 'jetpack-carousel' );             // Carousel          wp_deregister_style( 'grunion.css' );                  // Contact form          wp_deregister_style( 'the-neverending-homepage' );     // Infinite Scroll          wp_deregister_style( 'infinity-twentyten' );           // Infinite Scroll - Twenty Ten          wp_deregister_style( 'infinity-twentyeleven' );        // Infinite Scroll - Twenty Eleven          wp_deregister_style( 'infinity-twentytwelve' );        // Infinite Scroll - Twenty Twelve          wp_deregister_style( 'infinity-twentythirteen' );      // Infinite Scroll - Twenty Thirteen          wp_deregister_style( 'infinity-twentyfourteen' );      // Infinite Scroll - Twenty Fourteen          wp_deregister_style( 'infinity-twentyfifteen' );       // Infinite Scroll - Twenty Fifteen          wp_deregister_style( 'noticons' );                     // Notes          wp_deregister_style( 'post-by-email' );                // Post by Email          wp_deregister_style( 'publicize' );                    // Publicize          wp_deregister_style( 'sharedaddy' );                   // Sharing          wp_deregister_style( 'sharing' );                      // Sharing          wp_deregister_style( 'stats_reports_css' );            // Stats          wp_deregister_style( 'jetpack-widgets' );              // Widgets          wp_deregister_style( 'jetpack-slideshow' );            // Slideshows          wp_deregister_style( 'presentations' );                // Presentation shortcode          wp_deregister_style( 'jetpack-subscriptions' );        // Subscriptions          wp_deregister_style( 'tiled-gallery' );                // Tiled Galleries          wp_deregister_style( 'widget-conditions' );            // Widget Visibility          wp_deregister_style( 'jetpack_display_posts_widget' ); // Display Posts Widget          wp_deregister_style( 'gravatar-profile-widget' );      // Gravatar Widget          wp_deregister_style( 'widget-grid-and-list' );         // Top Posts widget          wp_deregister_style( 'jetpack-widgets' );              // Widgets  }  add_action( 'wp_enqueue_scripts', 'jeherve_remove_all_jp_css' );  
[collapse]
jcarousel

Deze maakt gebruik van plaatjes: de map skins met daarin alleen de gewenste (tango) heb ik verplaatst naar mijn stijlbestand.
wp-content/themes/child-of-suffusion/skins/tango.
Hierin staan nu de plaatjes met pijlen en het stijlbestand.
Omdat dit alleen maar geladen wordt op een enkele pagina, lijkt het me niet zo veel opleveren om het bestand te comprimeren en toe te voegen aan het stijlbestand van het thema.

[collapse]
foobox

NB: bekijk eerst de aanwijzingen over foobox. Je kan hier al een boel instellen. Zoals wanneer scripts en stijl geladen moeten worden.
Foobox: maatwerk! let op bij updates; zie: http://blackhillswebworks.com/2013/03/13/load-foobox-plugin-scripts-and-styles-only-when-needed/ Zorg dat je het juiste versie nummer invult. Maar als je de plugin niet update, blijft hij het ook goed doen (tot nog toe tenminste)

  add_action( 'wp_print_styles', 'bhww_disable_foobox_style', 100 );    	function bhww_disable_foobox_style() {    		// If this is home return early  				if (is_front_page())  			return;  		wp_deregister_style( 'foobox-1-4-min' );    	} // End bhww_disable_foobox_style  ?>  

Of voeg hem toe aan het rijtje uitgeschakelde stijlen:

  if (is_front_page()) {wp_deregister_style( 'foobox-1-4-min' );}
[collapse]
Events manager

Events manager: stel bij instellingen – algemeen – performance optimalization in: (zie: http://wp-events-plugin.com/documentation/optimization-recommendations/)ja wb Limit JS file loading?: vul het id in van de pagina die de kalender vertoont
ja wb Limit loading css: kopieer eerst de css code van de plugin en plaats hem in eigen stijlbestand
ja wb alternatieve thumbnail
Schakel scripts uit op de settings pagina: Algemeen – Performance optimization. Als je vinkje zet bij limit loading css files en er zijn te veel pagina’s, neem dan het css bestand , gecomprimeerd, over in het eigen stijlbestand.
wanneer javascript te laden

[collapse]
wp UI

wp UI

[collapse]