Vai a: [ Contenuti ] [ Categorie ] [ Cerca ]

Wordpress Saibal Edition: filosofia di un'ottimizzazione

Wordpress Saibal Edition: filosofia di un’ottimizzazione


La maggior parte inserisce il proprio link nella sezione Impostazioni: gli utenti si aspettano questo; altri invece, per scelta del programmatore, finiscono sotto Strumenti; alcuni, infine, decidono di creare un box indipendente da inserire alla fine del menù laterale: è il caso di quei plugin molto complessi con molte pagine.

L’utente si trova nella condizione di cercare le impostazioni dei singoli moduli in tre luoghi diversi. Il mio primo compito è stato normalizzare questa situazione modificando le funzioni add_menu di ogni singolo plugin. Adesso si trovano tutti in una stessa sezione sotto la voce Impostazioni.

Altra modifica sostanziale è stata quella di spostare e raggruppare tutti i fogli di stile in un’unica cartella nel tema attivo.

Normalmente ogni plugin che abbia uno strato di presentazione porta con se un file css che aggiunge all’header una volta attivato.

I css, scritti da mani diverse, spesso vanno in contrasto tra loro o non sono ottimizzati. Più plugin si installano più css diversi vengono aggiunti al caricamento della pagina. Situazione che non ho mai apprezzato.

Dato che non cambio spesso la struttura del sito e quindi non levo/metto moduli ogni giorno, ho ritenuto opportuno modificare i file necessari e fare in modo che i fogli di stile fossero centralizzati. Adesso sono tutti nella cartella:

/wp-content/themes/MIO_TEMA/css/

Per il corretto funzionamento di Wordpress ho comunque lasciato un file style.css nella root del tema (contiene solo le informazioni sul layout).

Stesso discorso per i javascript: ogni plugin ha il suo che, normalmente, viene caricato nelle pagine anche quando non serve. Prendiamo ad esempio il caso di Wp-ratings, che permette di votare un post. Questo è il js che si porta dietro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!-- WP-PostRatings -->
	<link rel="stylesheet" href="/wp-content/plugins/wp-postratings/postratings-css.css" type="text/css" media="screen" />
	<script type="text/javascript">
	/* <![CDATA[ */
	 var ratings_plugin_url  = '/wp-content/plugins/wp-postratings';
	 var ratings_ajax_url    = '/wp-content/plugins/wp-postratings/wp-postratings.php';
	 var ratings_text_wait   = 'Per favore 1 voto alla volta.';
	 var ratings_image       = 'plusminus';
	 var ratings_image_ext   = 'gif';
	 var ratings_max         = 2;
	 var ratings_1_mouseover_image  = new Image();
	 ratings_1_mouseover_image.src  = ratings_plugin_url + "/images/" + ratings_image + "/rating_1_over.gif";
	 var ratings_2_mouseover_image  = new Image();
	 ratings_2_mouseover_image.src  = ratings_plugin_url + "/images/" + ratings_image + "/rating_2_over.gif";
	 var ratings_show_loading = 1;
	 var ratings_show_fading  = 0;
	 var ratings_custom       = 1;
	/* ]]> */
	</script>
 
	<script type="text/javascript" src="/wp-includes/js/tw-sack.js"></script>
	<script type="text/javascript" src="/wp-content/plugins/wp-postratings/postratings-js-packed.js"></script>
	<!-- WP-PostRatings -->

Perchè inserirlo in tutte le pagine? Capisco che dopo la prima chiamata i file esterni vadano in cache ma trovo ridondante includere un codice quando non serve.

Per risolvere è bastato inserire un IF nel file wp-postratings.php

1
2
3
if (is_single()) {
    add_action('wp_head', 'the_ratings_header');
 }

La spiegazione mi sembra semplice: dato che la votazione può avvenire solo nella pagina del post (single.php) faccio un banale controllo e se viene richiesto un articolo lancio anche la funzione che aggiunge i javascript necessari al funzionamento del plugin.

Pagina: 1 [2] 3

link sponsorizzati

Consiglialo su Facebook

Lascia un Commento

Iscriviti alle discussione senza commentare

Torna: [ Inizio ] [ Contenuti ] [ Categorie ] [ Cerca ]

Pagina renderizzata in soli 0,188 secondi dopo aver eseguito ben 55 query. Wordpress... prestazioni da urlo!