Archive - Wordpress RSS Feed

WordPress e dintorni: un’occhiata all’offerta Seeweb

is-wordpress-secureIn questo ultimo periodo (inteso nell’ultima manciata di mesi che sono passati dall’inizio dell’anno) mi sono rimesso a valutare prodotti di diversa fascia di molti dei provider conosciuti sulla piazza. Ho spostato più volte questo blog dopo l’abbandono del server dedicato in Germania, alcuni mi hanno lasciato appiedato già durante i test, altri si sono rivelati più o meno validi recuperando (o perdendo) punti sul percorso tra una prova e l’altra ma uscendone poi a testa tutto sommato alta, presto vi parlerò dell’ultima scelta fatta che attualmente mi ospita e del perché io l’abbia presa. Nel frattempo voglio spendere qualche riga riguardo alcuni prodotti offerti da Seeweb, azienda molto conosciuta sul nostro territorio e spesso ricondotta a TopHost, la quale effettivamente è cliente poiché ospita all’interno del Datacenter di Seeweb le proprie macchine.

Ora, a meno che non vogliate mettere in piedi un server dedicato per ospitare il vostro blog personale (ammesso che non si tratti di un accumulatore seriale di visite in grado di far saltare in aria pazienza e risorse di un qualsivoglia hosting condiviso -o virtualmente dedicato- professionale), penso che possiate dare un’occhiata ai pacchetti che l’azienda rende disponibile nell’area dello shared hosting (non certo a buon mercato come Tophost ma qui non si è mai parlato di hosting da pochi spiccioli per tenete in piedi il sito della parrocchia, ndr). Questo tipo di provider garantiscono a voi ogni dettaglio riportato all’interno del “menu della casa“, sarete costantemente monitorati, verrete avvisati in caso di anomalie, aiutati in caso di necessità, tutta una serie di plus ai quali difficilmente potrete rinunciare una volta “a bordo“.

Rapida parentesi riguardo lo stesso posto ma per un’offerta diversa. Tempo fa vi avevo parlato di soluzioni home-made per conservare il backup dei dati costantemente prelevati dalle vostre installazioni WordPress (anche se nell’articolo parlo di Dokuwiki, la sostanza rimane la stessa). Quei dati esportati possono essere chiaramente caricati su Dropbox, Google Drive, box.com, Copy e mille altri servizi ad-hoc per versioning e protezione del proprio lavoro. Se per voi questo tipo di servizi non è sufficientemente affidabile o se preferite una soluzione di tipo enterprise con alti standard di sicurezza e possibilità di rivolgersi ad un supporto che scrive e parla in italiano e che possa quindi dare risposta ad ogni vostra esigenza ho notato che la stessa azienda propone una soluzione di backup online sicuramente più costosa ma che di certo non dovrebbe deludere le alte aspettative. Sia chiaro, stiamo parlando di qualcosa paragonabile a ciò che si fa in azienda quotidianamente con il giro backup, non di un qualcosa di entry-level.

Questo è solo il primo (in realtà non proprio il primo) di una serie di articoli che spero di poter pubblicare entro breve (più o meno) sul mondo dell’hosting italiano “di un certo livello“. Nel frattempo ringrazio Seeweb per avermi coinvolto e avermi dato la possibilità di esplorare il loro mondo di servizi ;-)

WordPress: migrazione delle immagini, verifica URL, pulizia

WordpressHackSourceCodeQuando ho deciso di creare un piccolo spazio personale su WordPress.com le idee erano ancora poco chiare, fino ad allora non avevo sentito la necessità di un blog personale, ne gestivo e scrivevo su generici già da anni, eppure volevo qualcosa di mio. In previsione di un futuro fatto di dominio di primo livello e hosting dedicato, avevo ben pensato di caricare tutte le immagini all’esterno dell’installazione WordPress. Un piccolo trucco che sicuramente rallentava (un po’) il caricamento della pagina, ma che mi ha permesso in seguito di migrare il blog molto più rapidamente.

Dopo anni ho deciso di migrare quei contenuti a bordo di WordPress. Vuoi per velocità di accesso, vuoi perché lo spazio non manca e vuoi anche perché così in caso di down del sito dove conservo le immagini questo può continuare a lavorare correttamente (c’è sempre la cache attiva eh, ma in ogni caso è meglio che le immagini siano raggiungibili), ho effettuato la migrazione. Con l’occasione ho rimesso a posto i puntamenti nei post, nei link verso l’esterno e rimosso ogni immagine inutilizzata all’interno dei post. Vi spiego cosa ho fatto, il tutto adattato a chi non sa mettere mano al proprio database SQL così da evitare ogni danno, solo plugin e un po’ di pazienza :-)

Plugin necessari

Ho usato 3 plugin differenti, ve ne parlerò nello specifico qui di seguito: Attach Unattached Images (Media Tools Hack), Image Cleanup e Velvet Blues Update URLs. Se gli ultimi due sono facilmente rintracciabili e installabili tramite Wodpress stesso, il primo è il risultato di un hack di un diverso plugin (Media Tools, ndr) e che vi toccherà installare manualmente.

Per vostra comodità ho raccolto tutti e 3 i plugin in un unico archivio che potrete scaricare da app.box.com/s/m3lk84mtlqngzeyenn2j. Scompattatelo sul vostro disco e collegatevi in FTP al vostro blog, quindi caricate il contenuto nella cartella wp-content/plugins del vostro WordPress. Ricordatevi poi di andare nell’area di amministrazione ad abilitare i 3 plugin (nel caso in cui ci siano aggiornamenti, installateli).

1- Caricare i contenuti in WordPress

Indubbiamente la cosa più semplice. Prendete tutte le immagini che avete fino ad oggi caricato nella diversa posizione rispetto al blog, sul vostro WordPress accedete alla Media Library e aggiungete i file in blocco, a questo punto pazientate perché ovviamente il tutto dipende dalla quantità di immagini da caricare e dalla velocità della vostra linea.

Il risultato? Tutte le immagini saranno presenti ora sullo stesso spazio web di WordPress, bisognerà a questo punto ripuntare ogni immagine, ogni collegamento e fare attach delle immagini per capire quali vi servono e quali no, ma soprattutto a che articoli appartengono.

ATTENZIONE: Da ora in poi verranno effettuate delle operazioni sul vostro database. Consiglio caldamente di effettuare un backup prima di procedere. Esistono miriadi di tool in grado di farlo automaticamente oppure potete scegliere di passare da phpMyAdmin e fare tutto a mano. Posso consigliarvi l’utilizzo di BackupWordpress?

2- Puntare al nuovo URL

Contrariamente a prima ora le immagini si trovano nello stesso spazio del blog, in una cartella differente che -nel 90% dei casi- sarà wp-content/uploads. Qui ci torna utile “Velvet Blues Update URLs” che tramite la sua comoda e intuitiva interfaccia ci permetterà di modificare i puntamenti alle immagini. Da Tools / Update URLs accederete al pannello del plugin dove sarà necessario specificare l’URL di partenza (da ricercare) e quello di destinazione (da sostituire).

velvet-update-urls

Sia chiaro: nel mio caso è stato “semplice“. Partivo da un concentratore all’interno del quale c’erano tutte le immagini seppur conservate in cartelle differenti, al contrario della destinazione (nuova) che invece puntava tutto nella cartella uploads di WordPress. Ho solo dovuto cambiare più volte il parametro “Old URL” (nella pagina del plugin, come in immagine sopra, ndr) e lanciare il processo di aggiornamenti dei collegamenti, il tutto selezionando solo la prima opzione (URLs in page content) perché avevo già fatto un primo lavoro di ricerca e sostituzione collegamenti tramite il sempre fidato Redirection. Avrei potuto utilizzare invece questo plugin anche per aggiornare i collegamenti negli articoli (sarebbe bastato selezionare anche la voce URLs in links).

Il processo è pressoché immediato, lancia una query MySQL sul database.

3- Riassegnare le immagini agli articoli

Ci avete fatto caso? Andando nella Media Library del vostro WordPress noterete che tutte le immagini caricate risultano “Unattached” (si lo so, ho WordPress in inglese e lo preferisco così), quindi non assegnate ad alcun articolo contenuto nel database. Giusto? Sbagliato. La risposta era ovvia, quello che è meno ovvio anche perdendo molto tempo sul web per cercare una soluzione è come porre rimedio. Vi facilito la vita: una modifica di un plugin già esistente (Media Tools, ndr) permette di fare uno scan pressoché automatico di tutti gli articoli del blog e passare in rassegna ogni immagine attaccandola a ciascuno di questi senza ulteriore vostro intervento.

Ho ritoccato ancora un po’ il plugin e ho rimosso le opzioni non utili ai fini di questa attività. Una volta caricato nel vostro spazio FTP e attivato potete trovare la voce “Media Tools” sotto “Tools“. Una volta dentro avrete a disposizione una sola opzione (Attach Unattached Images), voi dovrete scegliere “All Contents” per passare in rassegna ogni contenuto del blog oppure “Posts” per specificare ulteriori dettagli. Vi consiglio di selezionare proprio l’ultima voce citata. Per evitare sovraccarichi di CPU / RAM del vostro hosting condiviso e per non affaticare troppo il database (per query a ripetizione) è più corretto scegliere Posts, selezionare una categoria alla volta (in Categories, ndr) e addirittura un intervallo di date nel caso in cui gli articoli superino i 100 nella categoria indicata.

Messe a posto le necessarie opzioni potrete lanciare il processo tramite il pulsante in fondo alla pagina (Attach Unattached Images, sempre lui ;-)).

attach unattached images

La durata del processo dipende ovviamente dalla quantità di articoli presenti sul database e dalle capacità del server che vi ospita. Come già detto (meglio ribadirlo) è meglio ripetere l’operazione suddividendola in categorie e intervalli di data piuttosto che mandare “in palla” il tutto lanciando un processo su ogni contenuto presente sul vostro blog ;-)

media-tools-attach-unattached

4- Pulizie di primavera

Ancora un ultimo sforzo, ormai ci siamo. Questo è un passaggio non fondamentale ma credo tutto sommato utile per tutti. Quando si caricano le immagini nel proprio WordPress, lo stesso effettua dei ridimensionamenti e tiene più versioni della stessa immagine così da poterle fornire rapidamente all’autore (o agli autori) degli articoli. Se lo storico pubblicato fino ad oggi però contiene immagini dalle dimensioni ben precise, avere a bordo delle ulteriori versioni delle stesse non fa altro che occupare spazio inutile sul disco.

Può quindi essere utile fare pulizia eliminando ciò che non è necessario? Parbleu, ma certamente! ;-)

In casi come questo può tornare molto utile un plugin che ho trovato abbastanza ben fatto e performante dopo averne provati diversi. Si tratta di Image Cleanup. Una volta installato e attivato si potrà richiamare dal menu Tools della dashboard di WordPress (fa parte anche lui del pacchetto che vi ho preparato e condiviso ad inizio articolo, ndr). Dalla sua schermata principale potrete lanciare un’indicizzazione completa delle immagini presenti in archivio (pulsante Index Images vicino al titolo del plugin) la quale al termine genererà due voci specifiche: Unreferenced Unused Images e Obsolete Referenced Images.

Image Cleanup WordPress

Selezionando ciascuna delle due voci verranno caricati gli elenchi di immagini non utilizzate rilevati. Dal menu di Bulk Actions potrete scegliere di cancellare tutti i file semplicemente selezionando la voce Delete e confermando con Apply. Ripetendo l’operazione per tutte le pagine dell’elenco si arriverà ad avere (manco a dirlo) zero entry in lista (in realtà la lista sarà comunque popolata ma con un “Deleted” in corrispondenza di ciascuna immagine). Fate attenzione nel caso in cui abbiate temi personalizzati o modifiche al feed RSS che magari vanno ad utilizzare le immagini in dimensioni differenti, queste potrebbero risultare inutilizzate “agli occhi di WordPress” nonostante non lo siano per tema o chissà cos’altro (servizi esterni / pagine statiche / ecc.), mi è successo un errore simile con Fuorigio.co e ho dovuto poi rimediare ripristinando qualche immagine che ho per errore incluso in quelle da cancellare, occhio! ;-)

In conclusione

Spero di avervi dato ogni riferimento possibile nel caso in cui dobbiate replicare questo tipo di operazione sul vostro CMS. Il processo non è complesso ma è necessario fare attenzione a dove si mettono le mani e -come sempre- avere un backup a portata di mano per ripristinare ogni cosa nel caso in cui facciate (involontariamente o non) dei danni alla struttura. L’operazione può richiedere qualche ora di lavoro (dipende dalla quantità di dati e dalle risorse messe a disposizione dal vostro hosting provider) ma di sicuro alla fine vi porterà al risultato desiderato, permettendovi così di dare maggiore velocità all’intero sito web, che male non fa mai secondo le analisi di Google & Co.

In caso di dubbi come sempre l’area commenti è a vostra disposizione. Vale anche per lasciare un vostro consiglio, magari un domani (oppure oggi stesso) è possibile sostituire qualche passaggio con informazioni e istruzioni più semplici da capire e portare a termine, io ho utilizzato una strada che ho ritenuto affrontabile con uno sforzo non minimo ma neanche insopportabile, capisco che per alcuni utenti potrebbe non essere così e per questo vi invito a dire la vostra! :-)

WordPress: migrazione articoli da un autore all’altro

Decidete voi che strada prendere, la modifica di un’assegnazione autore-articolo in WordPress può essere eseguita sia da interfaccia grafica (dal pannello amministratore del CMS, per capirci), sia tramite una facilissima quanto immediata query MySQL. Il primo metodo è chiaramente controllato e a prova di errore, il secondo un pelo più pericoloso (un backup del database è necessario per evitare qualsiasi rogna). Il problema si presenta però con le grandi quantità di articoli assegnati ad un autore che non andrà cancellato.

backup_sql_wordpress

Perché dico questo? Perché (chi usa WordPress lo sa probabilmente) cancellando un utente lo stesso CMS vi chiederà se assegnare i suoi articoli ad un altro autore registrato nel database oppure se rimuoverli in blocco. Come scatenare quindi questo stesso comportamento pur non cancellando l’utente “sorgente“?

Farlo tramite WordPress

Niente di più semplice: dalla Dashboard amministrativa vi basterà selezionare la voce dedicata agli utenti, in corrispondenza di quello interessato fare clic sul numero di articoli in fondo alla colonna così da filtrare tutto ciò che è stato scritto da quella specifica persona, selezionare tutti gli articoli e andare in modalità di modifica (Bulk Edit, ndr). Manco a dirlo l’ultima mossa consisterà ovviamente nello scegliere l’utente di destinazione e fare un Update massimo che andrà così a riassegnare gli articoli alla persona scelta, le immagini qui di seguito vi permetteranno di capire meglio di cosa sto parlando:

Come già detto, questo porta un grosso svantaggio nel caso in cui gli articoli siano tanti (superiori ai 500 direi), poiché modificarli in bulk anche impostando WordPress per mostrarne 50 alla volta potrebbe scontrarsi con il timeout di caricamento della pagina impostata sul server che vi ospita, ottenendo così un risultato assolutamente non voluto (la classica pagina completamente bianca che vi toccherà ricaricare per poter vedere nuovamente il contenuto del vostro blog).

Farlo tramite MySQL

Prima di scegliere questa via vi ricordo di effettuare un backup del vostro database allo stato attuale.

Avete accesso al vostro database tramite phpMyAdmin? Se si, questo è il metodo ideale per migrare grandi quantità di articoli da un autore all’altro con una semplice istruzioni. Innanzi tutto servono due informazioni fondamentali: l’ID dell’autore “sorgente” (dal quale prelevare gli articoli) e quello di “destinazione” (a cui assegnare gli articoli). Accedete alla tabella “wp_users” (ovviamente voi potreste non avere wp_users, sostituite wp_ con il nome che avete adottato nel vostro database) e leggete gli ID in corrispondenza dei due utenti che vi servono, quindi spostandovi nella tabella “wp_posts” (vale quanto già detto prima) andate a selezionare “SQL” tra le tab disponibili in phpMyAdmin, copiate e incollate il seguente codice:

UPDATE wp_posts SET `post_author`='20' WHERE `post_author`='7'

dove quel 20 corrisponde all’utente “di destinazione” e quel 7 al “sorgente“. Il risultato (dipende dalla quantità di articoli e dalla velocità di risposta del vostro database) è pressoché immediato:

wp-author-MySQL

Aggiornando la pagina del vostro WordPress noterete immediatamente la modifica. Facile, molto veloce e in meno di un secondo vi ha risparmiato decine di minuti di lavoro :-)

Article Directory Theme: “NO CATEGORIES” con WordPress 3.8 nel corpo del blog

Contrariamente al solito, stavolta il tema è differente (Article Directory, in funzione su supportoinformatico.org che per l’occasione è tornato funzionante e ospitato sullo spazio di GxWare) ma il problema è lo stesso dell’ultima volta.

Come già detto, dopo il passaggio a WordPress 3.8, è comparsa la dicitura “NO CATEGORIES” sotto ogni blocco di categoria degli articoli, nonostante nel tema e nel plugin personalizzato (sempre di Article Directory) fosse stato specificato di non far comparire alcunché a video.

La colpa è della funzione che non viene più interpretata correttamente. Se anche voi non volete rinunciare all’utilizzo del tema e del suo plugin, potete pensare di mettere mano al codice e correggere il tiro, basterà infatti commentare un piccolo blocco di istruzioni.

Mano al file!

Come al solito includo il consiglio fondamentale per evitare di doversi disperare dopo aver creato il danno:

ATTENZIONE: Prima di eseguire qualsiasi modifica ai vostri file e/o dispositivi siete pregati di effettuare un backup di questi. Solo così sarete capaci di tornare indietro ponendo rimedio ad eventuali errori di distrazione. L’articolo e l’autore non possono essere ritenuti responsabili di alcun danno subito dalla vostra strumentazione. Buon lavoro.

Il blocco di istruzioni che ci interessano è contenuto all’interno di “article-directory.php“, nella cartella wp-content/plugins/article-directory, intorno alla riga 264 (dipende dalla versione di questo file caricata sul vostro spazio web), questa per la precisione:


$write .= '
<ul>';
if ($maximum_child) {
for ($s = 0, $strlen = strlen($_tree[$j][$i]['cats']), $counter = $maximum_child+1, $slevel = 0; $s < $strlen; $s++) {
if (!$slevel && substr($_tree[$j][$i]['cats'], $s, 3) == '<li' && !(--$counter)) break;
else if (substr($_tree[$j][$i]['cats'], $s, 3) == '<ul') $slevel++;
else if ($slevel && substr($_tree[$j][$i]['cats'], $s-4, 4) == '/ul>') $slevel--;
else if (!$slevel) $write .= substr($_tree[$j][$i]['cats'], $s, 1);
}
$licount = substr_count($_tree[$j][$i]['cats'], '<li');
if ( ($licount > $maximum_child) && ($_tree[$j][$i]['cats'] != '<li>' . __("No categories") . '</li>') ) {
$write .= '<li>...</li>';
}
}
else $write .= $_tree[$j][$i]['cats'];

$write .= '
</ul>';

Iniziate a commentare l’intero blocco inserendo un “/*” (senza virgolette) prima di $write nella prima riga del blocco, quindi un “*/” (anche questo senza virgolette, nda) subito dopo il </ul>’; che conclude il blocco di codice. Salvate il file e caricatelo nuovamente sul vostro spazio web sovrascrivendo quello già presente. Aggiornando la pagina, a meno di errori, il problema non sarà più presente, come nulla fosse mai successo ;-)

Ovviamente (che ve lo dico a fare) non potrete commentare il blocco nel caso in cui pensiate che un domani possa servirvi esporre sotto-categorie al seguito di quelle principali, dovrete ricordare la modifica operata e non stupirvi se -pur avendo appena inaugurato la prima sotto-categoria- questa non sarà visualizzata automaticamente nella pagina principale della vostra directory articoli!

Disqus: Recent Comments per WordPress

Come forse molti di voi sapranno già Disqus è un sistema di commenti per siti web, blog e comunità online che si integra perfettamente con i social network, permettendo infatti il login con il proprio utente Twitter, Facebook e non solo. La gestione dello spam, gli strumenti di moderazione e analisi, le notifiche mail, il pannello commenti e molto altro ancora è centralizzato per offrire a utilizzatori e possessori dei siti il massimo della praticità. Il fatto che vengano poi supportati tutti i principali browser da PC ed in parte quelli mobile per smartphone e tablet è un valore aggiunto non da poco.

Disqus è abilitato anche su Gioxx’s Wall e Fuorigio.co e visto che non ero riuscito a trovare nulla di già pronto che mi soddisfacesse, ho voluto creare un widget per WordPress che vi permetta di mostrare nella vostra sidebar (o altrove) gli ultimi commenti pubblicati sul vostro sito web.

Il codice è stato interamente pubblicato sul Wiki ed è possibile scaricare una copia del file PHP da caricare poi sul proprio spazio web: public.gfsolone.com/wiki/doku.php?id=wordpress:disqusrecents.

Attivazione ed utilizzo

Potete scaricare il file del widget direttamente facendo clic qui, dovrete poi caricarlo nella cartella wp-content/plugins del vostro spazio web. Entrate nella Dashboard del vostro WordPress e attivatelo:

Troverete ora il widget tra quelli disponibili nell’area di personalizzazione del vostro tema grafico:

Potrete così portarlo all’interno di quelli da mostrare nella vostra barra laterale (o in qualsiasi altra posizione consenta il vostro tema). Potrete personalizzare il titolo del blocco, l’ID dal quale caricare i commenti (la prima parte dell’URL del vostro sistema commenti registrato su DISQUS) e la quantità di ultimi commenti da mostrare (personalmente ho scelto di tenerne 8, non esagerate, occupano spazio!).

Leggera personalizzazione tramite CSS

Su Fuorigio.co, Lorenzo ha operato una piccola modifica tramite CSS per migliorare l’aspetto del blocco commenti:

Questo il semplice codice utilizzato:


/* DISQUS */
#disqus_thread {
margin-top: 20px;
}

ul.dsq-widget-list {
margin: 0;
}

Inutile dire che tutto ciò che viene caricato può essere facilmente intercettato e modificato in tempo reale con il vostro file CSS, basterà avere un po’ di manualità per questo tipo di cose.

Tutto qui, il lavoro è già fatto ed è pronto chiavi in mano, come al solito se riscontrate problemi o avete domande l’area commenti è a vostra totale disposizione.

Buon lavoro!

Page 1 of 812345»...Last »