WordPress: caricamento più efficiente con la giusta struttura di permalink

Ho appreso da questo post che nei giorni scorsi c’è stato in intenso ed interessante dibattito su una delle più frequentate mailing list a tema wordpress, a proposito dell’apparente lentezza di alcuni blog con “qualche migliaio” (quindi non tanti) di post. L’autore di uno di questi riportava in pratica l’esecuzione di migliaia di query per l’esecuzione di una singola pagina.

Il problema di fondo nasce nel meccanismo con cui WP gestisce i permalink, ovvero quella funzionalità che trasforma in forma mooolto più google friendly la url atrimenti enigmatica di un post.

 

E' facile impostare la struttura dei permalink in WordPress
E' facile impostare la struttura dei permalink in WordPress

WP offre grande flessibilità nella selezione della struttura dei permalink. Bisogna tuttavia evitare di cadere nell’errore di selezionare come prma chiave del permalink una variabile testuale (ad esempio %postname% o %category%). In questo caso infatti il motore di elaborazione dei permalink non potrà immediatamente distiguere il post da una page, e sarà quindi costretto ad un po’ di lavoro in più. Inoltre (e qui il problema di performance rischia di trasformarsi in un bug!) tutto il set di rewrite rules viene memorizzato nel database, e trattato da WP come una option, costringendo appunto il server a (potenzialmente) interminabili operazioni per redirigervi alla giusta pagina.

 

Recently I discovered that the current way wordpress handles permalinks is not scalable. All rewrite_rules are at the moment held in a single database field in the wp_options table. If you have a few dozens pages and posts, you have maybe a few hundred rewrite_rules in it and all is well. But as soon as you start to have a few hundred pages and attachments, the amount of rewrite_rules explodes as well as the field size. This also depends on the permalinks settings. On one of my sites I can’t even open the database field to take a look because my browser and text editor crash because of its size.

Se questo problema è poco sentito per i blog – dato che questi hanno tipicamente una struttura di permalink che comprende l’anno ed il mese di pubblicazione – rischia di diventarlo se volete usare WordPress come un CMS.

Assicuratevi quindi che la vostra struttura di permalink inizi con una variabile numerica.

Anche al documentazione di WordPress è stata aggiornata a seguito della discussione.

Da Blogger a WordPress, con l’aiuto di Google!

blogger2wpDovete convertire un blog da Blogger a WordPress, o il viceversa? Più facile a dirsi che a farsi, per una serie di ragioni legate all’imperfetto match fra i rispettivi formati (oltre ad una serie di problematiche legate alle impostazioni locali del server, che impattano sulle date, sui caratteri accentati etc etc.

Adesso però c’è un’arma in più, messa a disposizione proprio da Google, che peraltro ve la fa pure ospitare sui propri server.

Sono disponibili delle librerie python per la conversione fra i formati di importazione/esportazione di Blogger, WordPress e Live Journal, oltre che un discreto supporto al formato open BlogML.

Attenzione: usando la piattaforma di Google c’è un limite molto stringente (1 MB) per la dimensione dell’xml prodotto, quindi in questa configurazione il tool può essere usato solo per un numero limitato di articoli o per un blog piuttosto piccolo. Ovviamente potete sempre utilizzare il codice per conto vostro, nel qual caso il problema no si pone.

[via]

WordPress 2.7 e i Nested Comments

Da pochi minuti questo blog gira sulla nuova versione di WordPress, la 2.7 (named Coltrane).

Le maggiori novità si trovano dall’altra parte, cioè nell’area “amministrazione”, e riguardano un design completamente rinnovato (piuttosto funzionale).

La principale novità lato front end (ovvero quello che gli utenti vedono sul sito) riguarda probabilmente la possibilità di avere i commenti nidificati. Preciso subito che dovrete adeguare il vostro tema per poter sfruttare questa feature.

Un’ottima spiegazione in italiano di come la cosa è implementata la trovate in questo post di Francesco Gavello.

Come per ogni upgrade, è possibile che anche questo abbia generato qualche capitoncino. Grazie in anticipo per le segnalazioni.

Technorati Tags:

I commenti di FriendFeed direttamente sul vostro blog

C’è solo una via d’uscita all’enorme quantità di informazione che molti di noi si trovano a gestire sotto forma di blog, notizie, commenti, segnalazioni… E questa via d’uscita è rappresentata dal lavoro e dal contributo del network di contatti, colleghi ed amici. La mia rete sa cosa leggo, cosa mi piace, ed io condivido con essa interessi vari. Ecco perchè il mio non affollatissimo lifestream su FriendFeed mi permette di sfogliare velocemente un grandissimo numero di notizie ed informazioni, il tutto nel tempo di una pausa caffè.

Un ulteriore meccanismo per facilitare l’interazione con la mia rete l’ho scoperto oggi in questo articolo, in cui Richard MacManus spiega come ha gestito l’integrazione dei commenti di FriendFeed nel suo popolare blog.

In un break di 5 minuti (cinque!) ho deciso di sperimentare la stessa cosa, e potete vedere il risultato qui sotto. Facendo click sul pulsante “show” vedrete, in aggiunta ai commenti fatti sul blog, anche quelli eventualmente fatti direttamente sul mio stream FriendFeed. Fantastico!

Ecco le semplicissime istruzioni.

  1. Scaricate il Plugin WordPress sviluppato da Glenn Slaven (ne usiste uno per Movable Type, se usate un’altra piattaforma).
  2. Come per tutti gli altri plugin, scompattatelo nell’apposita cartella della vostra installazione di WordPress (wp-content/plugins), ed attivatelo.
  3. Inserite da qualche parte nel vostro template la chiamata alla relativa funzione: <?php wp_ffcomments(); ?>

E ora….commentate pure (anche da FF!).

UPDATE: per qualche strano motivo, in alcuni casi il plugin non riescew a capire a quale post collegarsi, ma basta fare refresh della relativa lista, e tutto funziona perfettamente.

Technorati Tags: , , ,

WordPress 2.6.1 in Beta

WordpressLa calura mi impedisce di dormire. In compenso questa navigazione ad orari inusuali mi permette di scoprire che è disponibile la beta di una nuova release di WordPress, l’engine che sta dietro alla maggior parte dei blog che leggete ogni giorno.

Fra le novità più significative, l’utilizzo di Google Gears per la velocizzazione tramite caching dell’interfaccia di amministrazione, la possibilitò di “versionare” i post (ci si avvicina ad un vero CMS), qualche miglioramento nelle performance del javascript e come sempre molti bug fixing.

Altre informazioni qui, mentre se avere fretta di provare, eccovi il link diretto al download.

Voi non avete visto niente…

…salvo forse qualche 404 e le immagini mancanti nell’header.

Perchè in realtà i nomi dei file erano maiuscoli. Ma avendo migrato nella notte il dominio da Windows a Linux, il file system non è più insensibile (insensitive) alle maiuscole/minuscole…

Tutto risolto comunque. Cosa cambia in sostanza? Per me e per voi molto poco, se non il fatto che adesso posso utilizzare delle url più amichevoli. Chi mi avesse comunque linkato in passato non si preoccupi, perchè l’ottimo WordPress continua a digerire anche le vecchie url.

Ma più che a WordPress i miei complimenti li dovrei fare all’hosting provider, Aruba (al quale mi affido ormai dal lontano 1999), che mi ha consentito di fare la migrazione senza un solo secondo di downtime.

Sabato pomeriggio, infatti, non appena conclusa la transazione sul sito di Aruba, mi è stata resa disponibile la macchina nuova. Istantaneamente! Accessibile ovviamente solo tramite indirizzo IP. E su quella ho potuto manualmente trasferire l’intera installazione, via FTP.

Nella ore successive credo sia avvenuta la propagazione del nuovo DNS, con entrambi i siti ancora operativi. E quindi teoricamente nessuno ha avuto errori…

Io non so se anche gli altri provider di cui sento spesso parlare rendano sempre le cose così semplici. Forse sono stato anche un pelo fortunato. Ma meglio così.

Technorati Tags: , , ,

WordPress 2.3, pronti per l’upgrade

WordPress 2.3, già in beta su diversi blog, dovrebbe essere ufficialmente rilasciato domani.
Non ne avrei fatto un post, se non fosse che questa versione contiene importanti novità, fra cui il supporto diretto per tag e tagcloud. Non concordo con chi dice che i plugin da usare come alternativa siano così difficili da installare e configurare.

[…] Unfortunately, it’s distributed in a package that is not intuitive to install, so most people don’t. It’s also fairly complex to configure, with a number of options that are not particularly self-explanatory.[…]

Uso Ultimate Tag Warrior da tempo e ne sono soddisfatto. Però avere il meccanismo integrato in WP è probabilmente meglio!
Resta il fatto che per integrare il meccanismo dei tag di Wp 2.3 sarà necessario apportare alcune modifiche al tema. Nel già citato alticolo ci sono le istruzioni per modificare il tema di wordpress per accogliere i tag, mentre su WordPress Codex c’è un esaustivo elenco di preparation points.
Infine, molto utile, una lista di plugin compatibili con WP 2.3, e una guida per configurare la manutenzione del proprio sito tramite Subversion.

Buon upgrade a tutti.

PS: un minuto prima di pubblicare ho scovato il completissimo post di Fullo. Imperdibile per chi deve effettuare l’upgrade.

Technorati Tags: , , , , ,

AdSense e WordPress: ma davvero serve un plugin?

Gli editori di Mashable (sempre ricco di contenuti interessanti, peraltro) sono riusciti a recensire ben 17 plugin per integrare i banner AdSense dentro il proprio WordPress. Ma….è davvero necessario?!? Cioè, non lo si può semplicemente mettere nella sidebar del proprio template preferito? Davvero….cosa cambia? Migliora le gestione degli annunci? O è solo una questione di comodità?

Technorati Tags: ,

Do Follow! (…wordpress blog comments)

Negli ultimi giorni su diversi blog di cui mi feedo (fra cui Capitano Uncino e Pandemia) si è accesa la discussione sull’opportunità di rimuovere il tag “nofollow” dai commenti dei blog. Un po’ di storia…
Poco più di un paio di anni fa qualli di Google decisero di contribuire, a loro modo, alla lotta al fenomeno del comment spamming. In pratica dichiararono che avrebbero continuato a seguire ma non più dato credito a qualunque link decorato con  l’attributo “rel=nofollow”, come descritto in questo post sul loro blog:

From now on, when Google sees the attribute (rel=”nofollow”) on hyperlinks, those links won’t get any credit when we rank websites in our search results.

Il senso è facile da intuire: se postare spam non da più alcun vantaggio, nessuno avrà più interesse a farlo. Nonostante il buon senso dell’iniziativa e la sponsorship di Google, la questione è stata molto discussa e criticata, ad esempio qui, qui e qui.

Molto di recente l’idea di riabilitare il “credito” sui link contenuti nei commenti ha preso molto piede in Italia, e se dico molto, intendo dire che ci sono veramente un  sacco di blog che ne discutono. La lista è copioincollata dal post di Capitano Uncino, al quale però do un credito extra: in un post scritto oltre dua anni fa (in piena bufera “nofollow”), aveva già detto la sua sull’opportunità di evitare questo meccanismo.
A Uncino.net il premio per la vision, ma a Stefano Gorgoni la palma per aver sintetizzato in un brillante post tutti i pro ed i contro (soprattutto i contro) del “nofollow”.

Veniamo a WordPress, che in automatico aggiunge il tag “nofollow” ai commenti. Per evitare ciò possiamo ad esempio seguire le complete (ma complicate) istruzioni indicate qui (link preso sempre a prestito da Uncino.net, ma questo è l’ultimo credito!), oppure, senza complicarci troppo la vita, scaricare un plugin che faccia esattamente questo lavoro, come ad esempio questo. Se qualcuno fosse ancora legato alla versione 1.5 di WP, segnalo anche quest’altro.

Upgrade WordPress 2.1, seconda parte

Ecco fatto. Come pubblicizzato l'upgrade è effettivamente abbastanza indolore. La pagina di reference è senza dubbio questa, e descrive passo passo la procedura da effettuare per assicurarsi che l’upgrade proceda senza intoppi, e soprattutto che vi lasci costantemente con una versione usabile del sito. Non sto quindi a ripeterla, ma sottolineo i passaggi fondamentali.

Fatto salvo che avrete certamente (vero?!?) effettuato backup di sito, template (che comunque non viene sovrascritto) e DB, una cosa molto importante è disabilitare tutti i plugin! Questo perchè alcuni dei plugin che usate potrebbero non essere pienamente compatibili con la nuova versione di WordPress, e pertanto al “riavvio”, il sistema potrebbe risultare semplicemente inaccessibile. Invece meglio disabilitarli tutti, fare l’upgrade, e poi riattivarli uno per uno.

Veniamo alle (poche) note dolenti: al primo tentativo di lanciare lo script di upgrade (/wp-admin/upgrade.php), si genera un errore: Fatal error: Call to undefined function: add_filter()
Con lo sgomento di avere incartato il tutto per l’eternità, mi precipito su Google dove scopro velocemente che non sono l’unico ad avere avuto il problema citato. E su una fonte assolutamente affidabile scopro il motivo dell’errore: una banale inversione nell’inclusione di due file libreria:

In the wp-settings.php file on line 135 you’ll see these two lines:

require (ABSPATH . WPINC . '/functions.php');

require (ABSPATH . WPINC . '/plugin.php');

Just reverse the order they’re listed in because the add_filter() function is NOT in the functions.php file; it’s in the plugin.php file so… they should now look like this:

require (ABSPATH . WPINC . '/plugin.php');
require (ABSPATH . WPINC . '/functions.php');

In realtà nella mia configurazioe c’è anche un file classes.php di mezzo, e quindi alla fine le righr 131-133 del file wp-settings risultano così:

require (ABSPATH . WPINC . '/plugin.php');
require (ABSPATH . WPINC . '/functions.php');
require (ABSPATH . WPINC . '/classes.php');

Note post-installazione:

  • positivo il fatto che il post in fase di scrittura venga autosalvato ogni tot secondi;
  • apprezzabile anche il (mancato) popup per l’inserimento dei link che viene fatto via AJAX (e non con un popup, appunto ;-));
  • insopportabile in fatto che non ci sia più la preview nella stessa pagina dell’editing, ma finora non mi sono neanche sforzato per carcare di capire se è una opzione che si può riabilitare.

          Questo è tutto; in bocca al lupo a chiunque dovesse effettuare l’upgrade, e spero che queste informazioni vi possano in qualche modo essere utili!

          Technorati Tags: , ,