Tag: PHP
How to install JSON on Linux server
by gurucoder on Nov.04, 2011, under PHP
If you would use JSON to get data from your Linux Server, but you encounter this error:
Error: PHP Fatal error: Call to undefined function json_encode()
The problem is that when PHP 5.2 version supports natively json functions ( json_encode() and json_decode() ), the previous version PHP 5.0 doesn’t support JSON.
Solution 1: Install JSON on PHP 5.0
# yum install php-pear gcc # pecl install json # cd /etc/php.d # echo "extension=json.so" >> json.ini # /etc/init.d/httpd restart
Solution 2: Upgrade your PHP version to 5.2
Come eliminare errore feed in WordPress
by gurucoder on Jun.04, 2010, under Windows
Negli ultimi giorni dopo aver installato alcuni nuovi plugin sul blog mi sono accorto di un grosso problema… i feed non risultavano più accessibili visualizzando questo errore:
Errore interpretazione XML: la dichiarazione XML o testuale non è all’inizio di un’entità
All’ inizio credevo che il problema derivasse da qualche mia modifica al codice sorgente del tema in uso, ma poi dopo un pò di ricerche ecco la soluzione… uno dei plugin installati potrebbe aver aggiunto uno o più spazi in testa alla pagina dei feed determinando un errore in fase di parsing dell’ rss.
E’ stato dal blog di Black Cat che ho risolto il mio problema: utilizzare la funzione ob_clean()!
Quindi:
Accedete a file: wp-includes/feed-rss2.php, ed inserite prima di qualsiasi altra cosa (ma ovviamente dopo <?php), la chiamata alla funzione: ob_clean(). In questo modo con tutta probabilità i vostri feed sarannno di nuovo accessibili senza problemi!
Come caricare file RAR su WordPress
by gurucoder on Jan.03, 2010, under PHP, Wordpress
Da quando sto utilizzando WordPress in modo self-hosted, quindi su un mio dominio , ho riscontrato una limitazione relativa all’ impossibilità di effettuare l’ upload sul mio blog di alcuni tipi di file . Dopo un pò di ricerche sono arrivato alla soluzione cercata.
Il modo per riuscire ad avere l’autorizzazione ad effettuare l’upload di un certo tipo di file sul blog , dipende dalla funzione get_allowed_mime_types() che si trova nella cartella in wp-includes del file functions.php. La funzione presenta un array in cui sono pesenti tutti i tipi di file che è possibile caricare sul blog con la relativa tipologia MIME.
Di default WordPress non permette ad esempio, l’upload di archivi RAR, presentando l’errore: “ Il tipo di file non rientra nei limiti imposti dai criteri di sicurezza. Provane un altro. ” . Per poter effettuare questa operazione basta modificare tale funzione aggiungendo questa entry all’ array, circa alla riga numero 2319 :
'rar' => 'application/octet-stream',
Dopo avere effettuato il salvataggio del file e l’ upload sul server ecco il risultato:

Infine per i meno smaliziati ecco il file modificato functions.php che permette anche l’ upload di file .php sul blog.
Creare Widget per visualizzare i Post Correlati in WordPress
by gurucoder on Jan.03, 2010, under Wordpress
Questo post ha l’obbiettivo di illustrare come implementare un Widget WordPress per visualizzare sulla sidebar, gli argomenti correlati ad un certo post che si sta visualizzando. Prima di entrare nel dettaglio, se siete alle prime armi con la realizzazione di Widgets, vi consiglio di dare uno sguardo al post: “Creare il primo Widget per WordPress“.
Vi consiglio prima di tutto di scaricare il widget tramite Questo Link e di installarlo per testarne la funzionalità.
L’ idea alla base è quella di modificare la query di selezione dei post da visualizzare, in base alle impostazioni inserite lato amministrazione.
Analiziamo alcuni rami di codice estratti dalla funzione “widget()”.
...
global $post;
$category = get_the_category($post->ID);
$cat = $category[0]->cat_ID;
$numPosts = $instance['numPosts'];
$searchCategory = isset( $instance['searchCategory']) ? $instance['searchCategory'] : false;
$orderRandom = isset( $instance['orderRandom']) ? $instance['orderRandom'] : false;
$query1 = "numberposts=$numPosts";
if( $searchCategory ){
$query = $query1 . '&category=' . $cat .'&exclude=' . $post->ID ;
}if( $orderRandom ){
$queryRandom = $query1 . '&orderby=rand';
}
...
Come si può osservare da questo frammento di codice, la query di selezione è costituita da una parte fissa che imposta il numro massimo di post da visualizzare ($query1) e da una parte variabile che dipende dai valori delle variabili $instance['orderRandom'] e $instance['searchCategory'] che sono i valori impostati lato amministrazione. Tali variabili si riferiscono rispettivamente ad effettuare una query in base alla categoria del post corrente oppure effettuare una query random sui vari post disponibili. Chiaramente i due criteri possono coesistere.
Il prossimo frammento di codice si riferisce alla visualizzazione del risultato della query scelta in base ai criteri di selezione precedenti.
...
if ( is_single() and $searchCategory ) {
$myposts = get_posts($query);?>
<? foreach($myposts as $post) :
setup_postdata($post); ?>
<a href="<? echo the_permalink(); ?>">
<? echo the_title(); ?></a>
<? endforeach; ?>
<? }
if( $orderRandom ) {
$myposts = get_posts($queryRandom);?>
<? foreach($myposts as $post) :
setup_postdata($post); ?>
<a href="<? echo the_permalink(); ?>">
<? echo the_title(); ?></a>
<? endforeach; ?>
<? }
...
Per default quindi il widget permetterà di visualizzare un certo numero di post che appartengano alla stessa categoria del post corrente. Chiaramente nella lista non apparirà il link al post viualizzato perchè sarebbe ridondante. Il filtraggio dei post da visualizzare viene effettuato nell’ impostazione della query:
$query = $query1 . '&category=' . $cat .'&exclude=' . $post->ID ;
in cui il parametro category viene impostato alla categoria del post visualizzato, il parametro exclude viene impostato invece all’ identificativo del post correntemente visualizzato in modo da escluderlo dal risultato della query.
Infine, se nel form di amministrazione del widget viene selezionata l’opzione “Random Search” , la variabile $instance['orderRandom'] verrà valorizzata a true, coò comporterà che anche la variabile $orderRandom verrà impostata a true tramite la chiamata della funzione isset( $instance['orderRandom']) ? $instance['orderRandom'] : false;. Questo comporta l’ingresso nel ramo if( $orderRandom ) .... { e quindi la visualizzazione dei post a random sulla sidebar. Il numero di post da visualizzare viene impostata dalla variabile $numPosts.
Spero che sia tutto chiaro se ci sono problemi o bug non esitate a contattarmi!
Inserire il proprio stato Twitter in WordPress
by gurucoder on Sep.28, 2009, under PHP, Wordpress
Una funzionalità che va molto di moda nei siti attuali, è la visualzzazione dello stato del proprio account Twitter. Esistono molti modi per realizzarlo, molti dei quali fanno uso di un numero non indifferente di funzioni in php, lo script che vi pesento invece, si basa su un idea molto semplice e di altrettanto semplice realizzazione: estrare l’informazione del proprio stato da un feed rss pubblicato direttamente di Twitter.
Twitter infatti permette l’ estrazione della stato di un certo utente tramite l’ url:
http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=1
dove la variabile $username chiaramente contiene il nome dell’ utente twitter di cui si vuole visualizzare l’ ultimo tweet pubblicato.
Di seguito vi presento il codice che serve al nostro scopo:
include_once(ABSPATH.WPINC.'/rss.php');
$username = "superbre"; // Your twitter username.
$tweet = fetch_rss("http://search.twitter.com/search.atom?q=from:" . $username . "&rpp=1");
$res2 = $tweet->items[0]['atom_content'];
Osservando il codice, si osserva la chiamata alla funzione fetch_rss(). Si tratta del parser RSS utilizzato da WordPress per default. Unica pecca di questo metodo è che tale parser effettua il controllo dell’ rss ogni ora, quindi se avete necessità che l’aggiornamento avvenga più di recente, oppure se siete soliti aggiornarlo molte volte in un ‘ ora, purtoppo questo semplicissimo metodo non fa per voi.
E’ comunque un difetto irrilevante se paragonato all’ estrema semplicità della soluzione. Inutile dire che è anche il metodo che ho utilizzato io per visualizzare il mio stato di twitter nel footer di questo tema.




