Wp-cache funziona. Finalmente. Grazie a Wolly

Questo è un post di servizio per fare il punto della situazione su un problema che mi ha ossessionato più o meno da Ferragosto di quest’anno fino ad oggi, anzi fino a ieri per la precisione. Due mesi di ricerche, prove e riprove per far funzionare come si deve un bellissimo ed utilissimo plugin di WordPress, WP-Cache, che proprio non ne voleva sapere di funzionare con l’attuale tema del blog.

Se non hai un blog gestito con WordPress e/o non ti occupi della “parte tecnica” molto probabilmente questo articolo ti interesserà ben poco e puoi benissimo non leggerlo: non ti perdi nulla. Se invece ti diverti a giocare ogni tanto con quello che secondo me è il migliore sistema per la gestione di un blog, WordPress per l’appunto, e magari ti interessa velocizzare il tutto perchè sei su un servizio di hosting non in Italia e lento soprattutto per quanto riguarda il database MySQL come Dreamhost, allora come già detto in passato ti consiglio vivamente l’utilizzo di WP-Cache che cade veramente come la manna dal cielo.

Di WP-Cache ne ho già parlato in passato e non sono il solo che lo ritiene un’ottima soluzione dagli indubbi benefici. Però oltre ad essere molto utile per velocizzare i blog che usano WordPress, è un plugin che dà spesso e sovente dei problemi di vario genere tanto che in giro i pareri su di esso sono discordanti: o lo si ama o lo si odia. Io fino a ieri lo odiavo. Oggi, che lo vedo finalmente funzionare bene e ne sento i benefici (spero che sia lo stesso anche per voi), posso finalmente tornare ad amarlo.

Fino a ieri infatti quando lo attivavo riscontravo il seguente problema: quando qualcuno lasciava un nuovo commento veniva aggiornata la cache della home page ma non si aggiornava la cache della pagina del singolo post e quindi il nuovo commento non compariva subito ma solo alla scadenza della validità della pagina, che ho imposto a 3600 secondo ovvero un’ora, e la cosa era abbastanza spiacevole perchè quando commentavate non vedavate immediatamente il vostro commento senza una plausibile spiegazione (io non modero i commenti ma lascio fare tutto ad Askimet).

Con Giorgio, che devo ringraziare per il tempo perso dietro questa cavolata abbiamo passato qualche giorno alla ricerca della soluzione al problema ma ci siamo arresi pensando di aver provato quasi tutto. In effetti è stato così. Abbiamo provato quasi tutto. Il problema era infatti nella barra laterale del tema.

Fortuna che c’è Wolly che con il suo metodo dicotomico è riuscito in poco tempo ad individuare dove stesse il problema e a risolverlo. In pratica nel nuovo tema per WordPress che uso da metà Agosto effettuavo delle query al database per avere i link dei post nelle sezioni “In Prima pagina” ed “In Seconda pagina” che molto probabilmente andavano in conflitto con WP-Cache quando doveva ricreare la pagina del singolo post. Io a tutto avevo pensato tranne che questo potesse essere il problema, forte del fatto che mi ero attenuto alle direttive presenti nelle pagine di Codex ufficiali di WordPress.

Alla fine della fiera la morale è che se utilizzate WordPress e WP-Cache e qualcosa non vi funziona potrebbe essere dovuto al fatto che ripetete il loop per mostrare i post o parte dei post da qualche parte nel vostro tema (per esempio nella barra laterle come facevo io) ed il tutto non è ben digerito dal plugin che funziona male.

Un grazie ancora a Wolly che ha evitato che impazzissi per il resto dei miei giorni alla ricerca della soluzione a questo problema ed in quattro e quattr’otto ha messo a posto le cose dimostrando disponibilità ed esperienza che oggi difficilmente di trovano.

7 pensieri riguardo “Wp-cache funziona. Finalmente. Grazie a Wolly

  1. @ordinarylife

    Si uso Dreamhost. Ma per quanto riguarda WordPress lo installo e lo aggiorno “a mano”, tanto è semplicissimo e posso decidere io in che lingua installarlo.

    Se non sei molto esperto basta seguire gli screencast di Andrea Beggi (qui)

  2. Ciao, ma tu usi dreamhost? perchè io ho un piccolo problema (colpa mia, non ci capisco molto): dovrei fare l’upgrade di wordpress e prima devo fare il backup di tutto, ma su dreamhost non reisco a trovare la funzione… magari mi puoi dare una mano…

  3. Si si. In pratica per avere i link degli articoli “In Seconda pagina” ed “In Prima pagina” facevo un loop identico a quello con cui si prendono i post dal db in home page spostato di un determinato offset e mostravo i permalink degli articoli.

    Questo secondo loop quanto pare manda WP-Cache allo sbando nella pagina dei singoli post, quindi ho deciso di optare per l’utilizzo di un plugin.

  4. Occhio che di regulus nel mio tema forse è rimasto soltanto l’html dei paragrafi e parte del foglio di stile 😉 Tutto il resto è ripartito da zero o quasi, ho eliminato tutte le query dirette al database come le chiamate per ottenere le opzioni del tema che nel mio caso sono statiche, tutto il resto è implementato o tramite un config.php o direttamente scritto (come il titolo del blog) nella template direttamente. Ho cercato di ridurre al massimo l’utilizzo di risorse nella template arrivando a fare sole 20-21 query per l’home page e gia senza wp-cache era rapido nella generazione pagina, Aruba problemi di MySQL mai dati al contrario di dreamhost e faccio 1000-1500 visitatori al giorno per il doppio delle pagine viste.
    Non ho certamente i numeri di Shor però lui punta alla quantità di notizie quindi è ovvio che deve avere tempi minimi di aggiornamento cache pubblicando un po di articoli al giorno. Io pubblico un post al giorno quando tutto va bene, una volta pubblicato il post non c’è più bisogno di creare (almeno per me) una nuova cache in continuazione quando la vecchia va bene.
    Tanto comunque non appena arriva-modifico un commento, o pubblico-modifico un post o una pagina la cache si rigenera sempre istantaneamente… se poi si hanno strette esigenze di banner che devono avere precisi conteggi di visualizzazioni o altro allora il discorso cambia.. io questi problemi non ne ho e il circuito a rotazione multilivello (array nell’array, entrambi rotanti casualmente, stupidissimo) me lo sono creato come chiamata diretta nel template in php senza mysql naturalmente.

    MBLA a differenza del plugin di Napolux che non è stato più aggiornato mi sembra, ha appunto uno sviluppo continuo (la base era quella di Napo) e un ottimo sistema di caching immagini (io l’ho impostata addirittura a 2 settimane), fatte le prime richieste può definirsi praticamente a riposo 😀

    Per concludere e scusami se mi sono dilungato, quando ho necessità di fare query al db trasformo tutto in un plugin (sembrerà strano ma non comporta grossi tempi di esecuzione aggiuntivi) e poi ne richiamo la funzione via template, così nel caso di errori non ho problemi perchè il plugin si disattiva da solo e la funzione inibita 😉

  5. @Traffyk

    Si avevo visto che lo utilizzavi senza problemi ma utilizzavi Regulus come tema che è abbastanza “standard”, il mio era un pochino “rustico” ed aveva un casino di chiamate dirette al db che molto probabilmente nella pagina del singolo post andavano “in conflitto” con WP-Cache.

    Global Translator l’ho utilizzatp fino a Giugno-Luglio anche io ma poi l’ho tolto quando ho rifatto il template. Non è escluso che se trovo un posticino lo rimetta.

    Per le avatar utilizzavo il plugin di Napolux anche se adesso l’ho tolto perchè caricare tutte le avatar ti costringe a fare una marea di Http_request che rallentano la visualizzazione della pagina.

    Per la cache non ti sembra troppo 12 o addirittura 24 ore? Geekissimo parlava di 240 secondi perchè lui ha 20’000 visitatori al giorno… ma da qui ad arricare a 24 ore ce ne passa!!!

  6. Per fortuna ti si è risolto tutto al meglio 😉
    Puoi vederlo funzionare da Dio sul mio blog da qualche mesetto ormai, ma un problema mai nulla e si integra perfettamente con global translator (sul quale non fa cache visto che la fa quest’ultimo)… ho dovuto penare un pochino per renderlo totalmente operativo e compatibile con tutto però alla fine è stato tempo davvero ben speso.. ora con MBLA (http://code.google.com/p/mbla/) ho in cache anche gli avatar dei commenti…cosa volere di più! 😀

    Utilizzo 10’000 secondi per la cache, ma piano piano sto incrementando sempre di più il valore..se non riscontrerò problemi, credo che arriverò intorno alle 12-24 ore, più o meno il tempo tra un post e l’altro 😉

Rispondi