Tag-arkiv: trick

Gør WordPress hurtigere med trick i functions.php

Dette er en lille guide til at gøre din WordPress installation lidt hurtigere. Jeg gør det ved at finde ud af hvilke javascripts og stylesheets jeg har kørende på mit site, og derefter sørge for, at de kun hentes, når der er behov for det.

Jeg vil i dette eksempel lege med WP-PostRating (et plugin der gør det muligt at vurdere indlæg) og Contact Form 7 (et kontakt formular plugin).

Pointen er at jeg kun vil have PostRatings til at loade på indlægssiderne, og jeg vil kun have Contact Form til at loade på min kontaktside og en anden side hvor jeg har et lille spørgeskema kørende.

Så jeg må ned i kildekoden og finde ud af hvad den loader. Du skal lede efter noget som ender på .css og .js Jeg finder disse to steder:

Her er CSS-kildekoden fra mit site

Her er CSS-kildekoden fra mit site

Her er JavaScript-kildekoden fra mit site

Her er JavaScript-kildekoden fra mit site

Nu skal jeg sørge for, at WordPress kun henter de to funktioner, på de sider som bruger dem. Det gør jeg ved at smide denne lille kodestump ind i functions.php (og jeg beklager, men vores tema styler ikke koden så pænt 🙁 ):

Denne funktion fjerner stylesheets
add_action( 'wp_print_styles', 'my_deregister_styles', 100 );

function my_deregister_styles() {
if ( !is_page('230') && !is_single('1228') ) {
wp_deregister_style( 'contact-form-7' );
}
if ( !is_single() ) {
wp_deregister_style( 'wp-postratings' );
}
}

Denne funktion fjerner javascripts
add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );

function my_deregister_javascript() {
if ( !is_page('230') && !is_single('1228') ) {
wp_deregister_script( 'contact-form-7' );
}
if ( !is_single() ) {
wp_deregister_script( 'wp-postratings' );
}
}

Det som foregår er: Hvis IKKE (!) vi er på siden med ID 230 eller indlæget med ID 1228, så skal Contact Form ikke loade. Og hvis ikke vi er på en indlægsside, så skal PostRating ikke loade. Så simpelt er det, og nu har du sparet en masse loadtid hos dine brugere, Google og din host. Og det er alle glade for 🙂