Archivi tag: wordpress

Nuovo template per il nostro sito!

Schermata 2013-07-24 alle 11.06.50

 

E’ arrivata l’ora di dare una rinfrescata a questo sito. Ormai il vecchio template, oltre ad aver stufato, era diventato obsoleto anche dal punto di vista delle funzionalità implementate in WP e siccome non ho mai tempo di metterci mano questa volta l’ho comprato bello e pronto su ThemeForest! Ecco qui il nuovo e fiammante WhiteBlack.

 

Migrare WordPress su nuovo dominio

Wordpress logo

Migrare un sito in WordPress da un dominio ad un altro potrebbe apparire un’operazione semplice ma in realtà le cose sono complesse. WordPress memorizza in diversi punti nel database alcuni parametri associati al dominio stesso o al percorso locale in cui WP stesso è installato. Tutti questi riferimenti risultano spesso annidati in array serializzati e memorizzati in campi di database. Un’eventuale modifica “a mano” via phpMyAdmin quindi risulterebbe abbastanza scomoda e assai lunga.

Allora ho creato uno script (parser_WP.php) in PHP che modifica ogni riferimento presente nel database in modo da agevolare le operazioni.

Ricapitolando quindi, per migrare un sito WordPress su un dominio diverso, dovete:

  1. Copiare tutti i file e cartelle da un server ad un altro (via FTP, a partire dalla root)
  2. Creare un dump del database
  3. Creare un database vuoto sul nuovo dominio
  4. Importare il dump precedentemente creato
  5. Copiare lo script di cui sopra nella root del nuovo dominio e lanciarlo via browser (dopo aver configurato i dati di accesso al database)

Le modifiche da apportare al database sono di 2 tipi: sul dominio e sul path.
Aprendo lo script noterete che nelle prime righe vi sono 2 variabili da impostare:

$lookFor = "domain-1.com";
$replace = "domain-2.com";

Sostituite domain-1 con il nome del vecchio dominio e domain-2 col nome del nuovo dominio.

WordPress però, come dicevamo, memorizza anche il path assoluto in cui è installato. Dovrete quindi lanciare nuovamente lo script sostituendo le 2 variabili con i path: vecchio e nuovo. Ad esempio:

$lookFor = "/home/myOLDuser/";
$replace = "/home/myNEWuser";

Lanciate nuovamente il file. In questo secondo caso il risultato restituito (lo script restituisce il numero di valori modificati) sarà molto basso rispetto al primo (anche se questo varia a seconda dei plugin, widget, ecc. installati).

Fatto, ricordatevi di rimuovere lo script php dalla root!!

WordPress, risolvere problema Informazioni Connessioni FTP

Oggi ho deciso di risolvere, in ambiente di sviluppo (macchina locale), una volta per tutte il problema dell’installazione (via download diretto) di plugins, temi, ecc, di WordPress. Sviluppo su iMac 27′ su cui ho installato Zend Server CE (LAMP).

Ogni volta che, in locale ( in produzione, ad esempio, mai avuto problemi!), tentavo di installare un plugin, un tema o un aggiornamento mi ritrovavo di fronte alla schermata sopra. Oggi ho approfondito alcuni aspetti e ho scoperto che si tratta di un problema di permessi.

WordPress, durante questi processi di installazione, ha necessità di lavorare sul Filesystem. Deve poter scrivere e modificare i permessi/proprietari dei files. Se per qualsiasi motivo non riesce a fare questa operazione rimanda l’utente alla schermata sopra nel tentativo di eseguire l’operazione via FTP. In questa pagina è spiegato molto bene tutto il meccanismo, viene anche evidenziata la procedura che WP utilizza per verificare se può scrivere sul Filesystem (vedi sotto).

Su OSX in pratica avevo questo contrasto nei permessi:

L’utente daeomn del gruppo wheel è quello con cui WP scrive sul filesystem (in pratica l’utente utilizzato da Apache). La procedura che effettua la suddetta verifica è questa:

// The following code is from the get_filesystem_method()
// method in the wp-admin/includes/file.php file:
 
if( function_exists('getmyuid') && function_exists('fileowner') ){
    $temp_file = wp_tempnam();
    if ( getmyuid() == fileowner($temp_file) )
        $method = 'direct';
    unlink($temp_file);
}

Nel mio caso non dà esito positivo e quindi si finisce alla schermata di inserimento dei dati account FTP. In pratica l’utente dello script che scrive sul filesystem deve essere lo utente con cui apache viene eseguito. Nel mio caso sopra infatti non è così.

Come risolvere il problema?

Non so se quella scelta è la via corretta e nemmeno mi sono preoccupato di eventuali problemi relativi alla sicurezza (per i quali vi consiglio il plug-in WP-Security) perchè, come ho evidenziato sopra, si tratta della macchina di sviluppo interna.

La mia soluzione è stata quella di cambiare il proprietario dell’intera directory che ospita WordPress impostando daemon come utente e wheel come gruppo:

chown -R daemon:wheel m4ss

Problema risolto!

WordPress Theme, integrare Widget e Gravatar

E’ online una nuova versione del tema di WordPress che ho rilasciato in questi giorni: WP Theme m4ss-net (Penguin).

Gli aggiornamenti riguardano l’aggiunta dei Widget e Gravatars fino ad oggi non utilizzati. Durante lo scrupoloso controllo dei vari punti della checklist di WordPress.org, al fine di poterlo pubblicare nella Free Themes Directory, mi sono accorto dell’ormai obbligatoria integrazione con Gravatar per poter uplodare un nuovo tema. Per ora l’integrazione realizzata riguarda solo la sezione dei commenti che, grazie all’inserimento dell’indirizzo email, riconosce l’utente e ne genera l’avatar impostato su Gravatar (1 riga di codice!).

Aggiungere Widget ad un tema di WordPress

E’ abbastanza semplice. Per prima cosa dobbiamo dichiarare le “posizioni” che  i nostri widget occuperanno nel template. Per fare questo inseriamo il seguento codice nel file functions.php:

if ( function_exists('register_sidebar') )
{
register_sidebar(array(
'id'             => 'sidebar',
'name'          => 'Sidebar right',
'before_widget' => '<li id="%1$s">',
'after_widget'     => '</li>',
'before_title'     => '<h2>',
'after_title'     => '</h2>',
));
register_sidebar(array(
'id'             => 'pinguino',
'name'          => 'Sidebar left (Penguin)',
'before_widget' => '<div>',
'after_widget'     => '</div>',
'before_title'     => '<h4>',
'after_title'     => '</h4>',
));
}

In questo caso ho dichiarato 2 sezioni in cui andremo a gestire i widget: una con id “sidebar” e l’altra con id “pinguino“. Il campo name sopra battezza il nome con cui verranno identificati nel Pannello di amministrazione di WordPress.

A questo punto è necessario aggiungere il codice nelle sezioni in cui voglio gestire i widget. Come abbiamo visto io li ho inseriti in 2 punti. La prima, sezione “sidebar“, è visibile in tutte le pagine ed è presente nella colonna destra (file sidebar.php). La seconda posizione (per scelta personale) è visibile solo nelle singole pagine dei post (file single.php).

Il codice da inserire per attivare la visualizzazione dei widget è il seguente:

<?php     /* Widget - ID: sidebar */
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar') ) : ?>
<p>Testo visualizzato in assenza di Widget</p>
<?php     endif; ?>

Come vedete bastano poche righe di codice e il gioco è fatto. E’ possibile anche ottimizzare il codice in modo da personalizzare il contenuto dell’area Widget nel caso in cui non vi siano widget installati.
Alla funzione dynamic_sidebar passiamo l’ID del widget che vogliamo abilitare, in questo caso sidebar.

Aggiungere Gravatar ad un tema di WordPress

Per questa prima release ho fatto veramente poco, giusto per passare i controlli automatici della Free Themes Directory e pubblicare il mio tema (in attesa tra l’altro di approvazione). Ho aggiunto questa riga di codice al file comments.php:

<?php if (function_exists('get_avatar')) { echo get_avatar($comment, 50); } ?>

La variabile $comment è l’array generato dal ciclo dei commenti, nel mio caso ho:

<?php foreach ($comments as $comment) : ?>

50 invece è la dimensione degli avatar visualizzati.

Nuovo WordPress Tema per m4ss

screenshot Wp Theme m4ss 1.5

Dopo aver concluso i lavori sulla Home page, come promesso, rilascio il Tema WordPress realizzato per questo blog.
Siamo giunti alla versione 1.5 la quale include una nuova Home con i Post più letti affiancati ai più recenti. Nella pagina dei singoli post ho aggiunto i pulsanti del plug-in Tweet This (“Segnala su Twitter” e “Pubblica su Facebook“) e gli Articoli correlati (plug-in Contextual Related Posts).
I box dedicati all’Advertising in tutto son diventati 4, ora trova posto anche quello nella pagina standard (page.php).

Per tutti i dettagli vi rimando alla pagina dedicata al WP Theme m4ss-net (Penguin).

WordPress media error (404) su file .gz

Stamattina mi sono scornato con quei “problemi” stupidi che però ti fanno perdere un paio di ore!

Ho uplodato (tramite gestione Aggiungi Media) un file su WordPress: prova.php.gz
L’upload va a buon fine, pubblico il post e tutto sembra ok. Vado per controllare il funzionamento del link al file creato e finisco sulla pagina di errore 404. Subito ho pensato si trattasse di qualcosa relativo al file .htaccess e quindi ho fatto qualche ricerca e qualche esperimento ma nessun risultato.
Ho guardato poi il log_error del server e ho trovato questo che mi ha completamente depistato:

[Mon Jul 01 12:56:53 2009] [notice] mod_fcgid: process /home/xxxx/public_html/wp-content/uploads/2009/07/prova.php.gz(2535) exit(communication error), terminated by calling exit(), return code: 121

Cerca e ricerca… niente!

Alla fine il problema stupido era che il file, incorporando l’estensione .php , veniva in qualche modo saltato dal codice di WordPress. Mi è bastato ripetere l’upload, questa volta chiamando il file prova.gz, che tutto ha funzionato alla grande!

Sbattere la testa nel muro!

Internet è anche uno strumento di lavoro!

La battaglia per l’imbrigliamento della rete Internet continua senza pietà. Sono diversi gli attacchi che si susseguono ormai quotidianamente. Il senatore Gianpiero D’Alia introduce nel disegno di legge 733 l’articolo 50-bis: “Repressione di attività di apologia o istigazione a delinquere compiuta a mezzo internet“. Dall’intervista di Alessandro Gilioli (L’Espresso) si evince chiaramente quanto sia scarsa la conoscenza del senatore di Internet e i suoi strumenti. Poi è la volta dell’onorevole Roberto Cassinelli che tenta di “correggere le storture dell’articolo 50-bis“. Arriva il grande giorno anche per l’onorevole Gabriella Carlucci con un progetto di legge, il 2195, che intende “assicurare la tutela della legalità nella rete Internet” vietando di fatto la possibilità di esprimersi in maniera anonima. Oggi, un nuovo giorno, leggo su Punto Informatico che l’assurda proposta sul Diritto d’autore è di Luca Barbareschi.

Ognuno dice la sua, sembra la moda del momento: “Sai… in rete si acquisice subito popolarità, sei sulla bocca di tutti”.
Ma la vogliamo smettere ?!

Il solo fatto di considerare Internet (e legiferare su essa) come se fosse esclusivamente un mezzo di informazione dimostra già un livello di ignoranza talmente elevato da lasciare senza parole. In questo paese si ignora sempre e costantemente che Internet è anche uno strumento di lavoro, un’opportunità di business, un nuovo mercato per molte aziende. Come può il sentatore D’Alia pensare anche solo per un istante di oscurare l’intero Facebook perchè presenta un gruppo di “appassionati” a Totò Riina. Si chiederà a Facebook di intervenire, si faranno pressioni sugli Stati Uniti (paese in cui Facebook è stato fondato) ma mai, e dico mai, lo si dovrebbe oscurare perchè sono tante le aziende che hanno una pagina su Facebook.
I Social network, così come altri servizi della rete Internet, oggi sono uno strumento fondamentale per il Marketing delle aziende, stanno diventando un nuovo modo di comunicare e fidelizzare il cliente. Aziende del calibro di Dell hanno dichiarato entrate fino ad 1 milione di dollari provenienti dalle azioni di marketing e pubblicità effettuate su Twitter (piattaforma di micro-blogging).
Tra WordPress e Blogger, entrambe piattaforme di blog, trovano posto migliaia di blog aziendalitenuti da uno o più dipendenti di una azienda: una voce più informale rispetto al sito internet. I blogger sono tenuti a rispettare un codice aziendale, ma i blog aziendali sono spesso visitati per la semplicità e l’immediatezza delle informazioni che vi si trovano” (da Wikipedia). Su un blog aziendale anche un semplice commento anonimo che segnala un problema su un prodotto (o un servizio) può essere importante per un’azienda perchè non conta chi lo scrive bensì il contenuto. A volte potrebbero essere i dipendenti stessi a segnalarlo, ovviamente in pieno anonimato!

In un contesto italiano in cui è già difficile trasmettere l’importanza di certi strumenti alle aziende, in un tessuto imprenditoriale che, ingiustificato, fatica a trovare il tempo da dedicare ad Internet, il solo pensiero di poter essere oscurati perchè altri hanno commesso un reato sulla stessa piattaforma del proprio blog aziendale non può che allontanare gli imprenditori dalla rete. Internet per le aziende rappresenta una speranza, soprattutto in questo periodo di crisi. Rappresenta l’opportunità di aprirsi a nuovi mercati grazie all’utilizzo di strumenti innovativi che permettono di relazionarsi con il cliente in modi diversi, il tutto abbattendo i costi.

Tutto ciò sembra non contare nulla.
In un periodo di crisi profonda come quello che stiamo attraversando le aziende sono costrette a lottare contro la crisi economica con il bastone “Stato” tra le ruote.
Twitter for Marketing and PR

Slide - Twitter for Marketing and PR

Spam Karma 2.3 : STOP agli spammer!

NO SPAM

[Immagine by programwitch]

Da giorni lo spam su questo blog è degenerato. La situazione era diventata ingestibile e, se fino a qualche giorno fa Akismet aveva pienamente sotto controllo la situazione, oggi è completamente sotto scacco.

Ho installato quindi Spam Karma, la versione 2.3
Ha già iniziato il suo lavoro egregiamente e sembra funzionare bene. Bisogna tenerlo sotto controllo i primi giorni perchè può sfuggire qualcosa o qualcosa di troppo finire nello spam. I parametri di configurazione sono tanti ed è estremamente flessibile. L’ho configurato e fa il suo dovere, per ora sono più che soddisfatto!