<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jblog &#187; Wordpress</title>
	<atom:link href="http://jblog.it/category/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://jblog.it</link>
	<description>News e appunti per webmaster</description>
	<lastBuildDate>Tue, 25 May 2010 16:16:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Wordpress plugin: stampare una lista di &#8220;featured posts&#8221; o &#8220;post in evidenza&#8221;</title>
		<link>http://jblog.it/2009/06/17/wordpress-plugin-stampare-lista-featured-posts-in-evidenza_690.html</link>
		<comments>http://jblog.it/2009/06/17/wordpress-plugin-stampare-lista-featured-posts-in-evidenza_690.html#comments</comments>
		<pubDate>Wed, 17 Jun 2009 02:49:56 +0000</pubDate>
		<dc:creator>Giacomo</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress plugin]]></category>
		<category><![CDATA[wordpress trick]]></category>

		<guid isPermaLink="false">http://jblog.it/?p=690</guid>
		<description><![CDATA[I cosiddetti &#8220;featured posts&#8221; sono un insieme di post che vengono scelti per esser messi in risalto. In questo blog, i &#8220;post in evidenza&#8221; sono quelli che considero essere i migliori. Mettendoli in risalto ho la possibilità di mostrare il meglio dei miei articoli al nuovo visitatore. Potrebbero esserci altri motivi, ad esempio di tipo [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jblog.it/2009/06/17/wordpress-plugin-stampare-lista-featured-posts-in-evidenza_690.html"><img class="alignright size-full wp-image-697" title="Highlighter" src="http://jblog.it/wp-content/uploads/2009/10/featuredposts.jpg" alt="Highlighter" width="200" height="286" /></a>I cosiddetti &#8220;featured posts&#8221; sono un insieme di post che vengono scelti per esser messi in <strong>risalto</strong>. In questo blog, i &#8220;post in evidenza&#8221; sono quelli che considero essere i migliori. Mettendoli in risalto ho la possibilità di mostrare il meglio dei miei articoli al nuovo visitatore. Potrebbero esserci altri motivi, ad esempio di tipo commerciale (se i post in evidenza pubblicizzano qualcosa).</p>
<p>Nonostante ci siano un po&#8217; di ottimi plugin per la gestione e la stampa dei &#8220;featured posts&#8221; ho sviluppato questo mio plugin che, credo, sia diverso dai plugin in circolazione e per certi versi offra una gestione più <strong>user friendly</strong>. Probabilmente questo sarà un giudizio soggettivo&#8230; In pratica, ci sono alcuni plugin che permettono di inserire gli id dei post, separati da virgole, in una casella di testo. Il mio plugin legge i &#8220;custom fields&#8221; (in italiano &#8220;campo personalizzati&#8221;) dei post che si decide di mettere in evidenza. In questo senso credo che impostare un campo personalizzato sia un po&#8217; più user friendly rispetto all&#8217;aver a che fare con insiemi di numeri. <strong>Secondo te?</strong><br />
<span id="more-690"></span></p>
<h2>Per gli impazienti</h2>
<p><!--adv300--></p>
<p>Per iniziare a utilizzare il plugin:</p>
<ol>
<li>effettua il download: <a href="http://download.jblog.it/wp-plugins/jblog_featured_posts.zip" target="_blank">http://download.jblog.it/wp-plugins/jblog_featured_posts.zip</a></li>
<li>copialo nella directory &#8220;plugins&#8221; e attivalo</li>
<li>inserisci la funzione jblog_print_featured_posts() nel punto del template in cui vuoi stampare la lista dei post in evidenza</li>
</ol>
<p><strong>Per far comparire un determinato post fra i post in evidenza</strong> è necessario entrare nella pagina di editing dell&#8217;articolo e inserire un campo personalizzato di nome &#8220;featured&#8221; con il valore &#8220;ok&#8221; o uno qualsiasi. <em><strong>Il valore non incide sul funzionamento del plugin</strong></em>. Tuttavia consiglio di inserire il valore &#8220;ok&#8221; in modo da beneficiare di futuri aggiornamenti in cui eventualmente verrà utilizzato.</p>
<h2>In profondità</h2>
<p>Il plugin è composto da due funzioni:</p>
<ul>
<li><strong>jblog_getFeaturedPosts</strong> seleziona i post e li restituisce in un array, ordinati dal più recente al più vecchio</li>
<li><strong>jblog_printFeaturedPosts</strong> seleziona i post e li stampa sottoforma di lista &lt;ul&gt;&#8230;&lt;li&gt;</li>
</ul>
<h3>jblog_getFeaturedPosts</h3>
<p>Questa funzione è il cuore del plugin. Seleziona i post e li restituisce in un array. In questo modo potrai essere libero di gestire e stampare i dati restituiti come più ti piace.</p>
<p>La funzione ha <strong>2 argomenti</strong>:</p>
<ul>
<li><strong>$args</strong> [default "limit=10&amp;len=0"] è una stringa in cui vengono passate le opzioni (nella forma [opzione]=[valore]) separate da &#8220;&amp;&#8221;. Le uniche due opzioni sono <strong>limit</strong> (-1 per stampare tutti i post in evidenza, un numero maggiore di 0 per stampare un numero limitato di post) e <strong>len</strong> per la lunghezza del contenuto (per non selezionare il contenuto basta impostarlo con zero o non impostarla affatto)</li>
<li><strong>$metakey</strong> [default "featured"] è una stringa utilizzata per impostare il nome del campo personalizzato utilizzato per indicare che il post deve esser messo in evidenza</li>
</ul>
<p><strong>Esempio</strong></p>
<p><code>$myarray = jblog_getFeaturedPosts("limit=-1&amp;len=150","myfeatured");</code></p>
<ul>
<li>$myarray è l&#8217;array in cui verranno restituiti i post</li>
<li>limit=-1 fa in modo che si selezionino tutti i post che hanno il campo &#8220;myfeatured&#8221;</li>
<li>len=150 imposta il numero di caratteri del contenuto da restituire</li>
<li>&#8220;myfeatured&#8221; è il campo personalizzato utilizzato per indicare che il post deve esser messo in evidenza</li>
</ul>
<p><strong>L&#8217;array</strong> restituito dalla funzione è composto dai post selezionati, ordinati dal più recente al più vecchio. Ogni elemento dell&#8217;array è a sua volta un array associativo contenente le informazioni del singolo post divise in corrispondenza degli indici &#8220;id&#8221;, &#8220;title&#8221;, &#8220;link&#8221; e &#8220;content&#8221;.</p>
<p><strong>Esempio</strong></p>
<p>Un semplice esempio per la stampa delle informazioni di ogni singolo post selezionato.</p>
<pre lang="php">// Seleziona i post
$posts_array = jblog_getFeaturedPosts("limit=20&amp;len=300","myfeatured");

// Ciclo: stampa le informazioni di ogni singolo post
foreach($posts_array as $post)
{
     echo "ID: ".$post['id'];
     echo "Titolo: ".$post['title'];
     echo "Link: ".$post['link'];
     echo "Contenuto: ".$post['content'];
}</pre>
<h3>jblog_printFeaturedPosts</h3>
<p>Oltre a selezionare i post in evidenza, li stampa in una lista del tipo &lt;ul&gt;&#8230;&lt;li&gt;.</p>
<p>Gli <strong>argomenti </strong>sono gli stessi della funzione jblog_getFeaturedPosts (vedi sopra).</p>
<p><strong>Esempio</strong></p>
<p>Questa funzione va utilizzata direttamente all&#8217;interno del template inserendo la riga seguente nel punto in cui si desidera visualizzare la lista.</p>
<p><code>&lt;? jblog_printFeaturedPosts("limit=-1&amp;len=100") ?&gt;</code></p>
<h2>Come impostare un post &#8220;in evidenza&#8221;</h2>
<p>Questo se vogliamo è il lato del plugin un po&#8217; più &#8220;macchinoso&#8221;.</p>
<p>Per fare in modo che un post venga stampato nella lista dei post in evidenza è necessario andare nella pagina di editing dell&#8217;articolo e creare un <strong>&#8220;custom field&#8221;</strong> (o campo personalizzato) di nome &#8220;featured&#8221; oppure uguale all&#8217;argomento <strong>$metakey</strong> passato alle funzioni.</p>
<p>Come valore scrivere una cosa qualsiasi. Tuttavia consiglio di inserire il valore &#8220;ok&#8221; in modo da beneficiare di futuri aggiornamenti in cui eventualmente verrà utilizzato. <em><strong>Il valore non incide sul funzionamento del plugin</strong></em>, ma è necessario dato che wordpress non permette la creazione di un campo personalizzato senza un valore.</p>
<h2>HTML e utilizzo dei CSS</h2>
<p>Se utilizzi la funzione<strong> jblog_printFeaturedPosts </strong>ecco le informazioni che ti servono per poter formattare adeguatamente la lista dei post.</p>
<ul>
<li>Per formattare il contenitore principale della lista (&lt;ul&gt;) fare riferimento all&#8217;id &#8220;featured_posts&#8221;</li>
<li>Ad ogni contenitore del singolo post (&lt;li&gt;) viene attribuito l&#8217;id &#8220;featured_post_&#8221; al quale viene aggiunto in coda l&#8217;id del post</li>
<li>Il titolo di ogni post viene inserito all&#8217;interno di un tag &lt;a&gt;, il cui attributo href sarà impostato con il link del post</li>
<li>Il contenuto dei post viene inserito in un tag &lt;p&gt;</li>
</ul>
<p><span class="highlight_red"><strong>Vuoi personalizzare il codice html?</strong> Apri il file del plugin, individua la funzione jblog_printFeaturedPosts e buon lavoro! <img src='http://jblog.it/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' title="Wordpress plugin: stampare una lista di featured posts o post in evidenza" /> </span></p>
<h4>Esempio dell&#8217;output</h4>
<pre lang="html">&lt;ul id="featured_posts"&gt;
	 &lt;li&gt;
		&lt;a href="http://...html" id="featured_post_270"&gt;Titolo 1 - post 270&lt;/a&gt;
		&lt;p&gt;Howwww! Nab him, jab him, tab him, grab him, stop that pigeon now.&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
		&lt;a href="http://...html" id="featured_post_320"&gt;Titolo 2 - post 320&lt;/a&gt;
		&lt;p&gt;Grab him, stop that pigeon now.&lt;/p&gt;
	&lt;/li&gt;
	&lt;li&gt;
		&lt;a href="http://...html" id="featured_post_450"&gt;Titolo 1 - post 450&lt;/a&gt;
		&lt;p&gt;Tab him, grab him, stop that pigeon now.&lt;/p&gt;
	&lt;/li&gt;
&lt;/ul&gt;</pre>
<h2>Script e Download</h2>
<p>Per vedere il codice del plugin fai su <a href="http://test.jblog.it/wp-plugins/jblog_featured_posts.txt" target="_blank">http://test.jblog.it/wp-plugins/jblog_featured_posts.txt</a></p>
<p>Per scaricare il plugin vai su <a href="http://download.jblog.it/wp-plugins/jblog_featured_posts.zip" target="_blank">http://download.jblog.it/wp-plugins/jblog_featured_posts.zip</a></p>
<p><span class="highlight_green"><strong>Per eventuali segnalazioni e malfunzionamenti scrivi dei commenti a questo post o contattami sull&#8217;email che trovi nella pagina &#8220;contatti&#8221;.</strong></span></p>
<p><strong>Questo plugin non fa per te?</strong> In <a title="Ricerca Wordpress plugin &quot;featured posts&quot;" href="http://wordpress.org/extend/plugins/search.php?q=featured+posts" target="_blank">questa pagina</a> (su wordpress.org) trovi tantissimi plugin riguardanti i &#8220;post in evidenza&#8221;. Sicuramente ne troverai uno adatto alle tue esigenze! <img src='http://jblog.it/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' title="Wordpress plugin: stampare una lista di featured posts o post in evidenza" /> </p>
<p><strong>Foto: </strong><a href="http://www.flickr.com/photos/deadmanjones/2263906774/" target="_blank">still managed to draw a straight line</a> di <a href="http://www.flickr.com/photos/deadmanjones/">deadmanjones</a></p>
<img src="http://jblog.it/?ak_action=api_record_view&id=690&type=feed" alt=" Wordpress plugin: stampare una lista di featured posts o post in evidenza"  title="Wordpress plugin: stampare una lista di featured posts o post in evidenza" />]]></content:encoded>
			<wfw:commentRss>http://jblog.it/2009/06/17/wordpress-plugin-stampare-lista-featured-posts-in-evidenza_690.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Wordpress: ordinare gli articoli in modo casuale</title>
		<link>http://jblog.it/2009/06/04/wordpress-query-ordinare-post-articoli-modo-casuale-random_573.html</link>
		<comments>http://jblog.it/2009/06/04/wordpress-query-ordinare-post-articoli-modo-casuale-random_573.html#comments</comments>
		<pubDate>Thu, 04 Jun 2009 21:11:25 +0000</pubDate>
		<dc:creator>Giacomo</dc:creator>
				<category><![CDATA[Php e MySql]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[classe php]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[wordpress trick]]></category>
		<category><![CDATA[wp_query]]></category>

		<guid isPermaLink="false">http://jblog.it/?p=573</guid>
		<description><![CDATA[Un lettore del blog mi ha contattato per chiedermi di aiutarlo a impostare Wordpress.
In particolare, ha bisogno di ordinare i post in modo casuale nell&#8217;archivio di categoria.
Dopo aver spulciato le librerie di Wordpress e aver eseguito un po&#8217; di prove ho sfornato questa funzione che sembra funzionare a dovere.
La classe WP_Query

In Wordpress le query (interrogazioni) [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jblog.it/2009/06/04/wordpress-query-ordinare-post-articoli-modo-casuale-random_573.html"><img class="alignright size-full wp-image-574" title="Logo Wordpress" src="http://jblog.it/wp-content/uploads/2009/10/wordpress-logo.jpg" alt="Logo Wordpress" width="220" height="220" /></a>Un lettore del blog mi ha contattato per chiedermi di aiutarlo a impostare Wordpress.</p>
<p>In particolare, ha bisogno di ordinare i post in modo casuale nell&#8217;archivio di categoria.</p>
<p>Dopo aver spulciato le librerie di Wordpress e aver eseguito un po&#8217; di prove ho sfornato questa funzione che sembra funzionare a dovere.</p>
<h2>La classe WP_Query</h2>
<p><!--adv300--></p>
<p>In Wordpress le query (interrogazioni) al database vengono gestite con la classe WP_Query che si trova in <strong>wp-includes/query.php</strong>.</p>
<p>Ecco le proprietà e i metodi della classe WP_Query che utilizziamo:</p>
<ul>
<li>con il metodo <code>set($query_var, $value)</code> impostiamo le caratteristiche della query</li>
<li>il metodo <code>get($query_var)</code> restituisce il valore di una variabile</li>
<li>per eseguire la query utilizziamo la funzione <code>get_posts()</code></li>
</ul>
<p>Tuttavia, questi tre metodi non bastano a modificare l&#8217;elenco dei post che verranno visualizzati.</p>
<p>Questo elenco è memorizzato all&#8217;interno della proprietà <code>posts</code> (di tipo array) che verrà sovrascritta con l&#8217;array restituito dal metodo get_posts(), nell&#8217;ultima riga.</p>
<p><strong>Per saperne di più</strong> sulla classe WP_Query vai su <a title="Wordpress - Function Reference: WP Query" href="http://codex.wordpress.org/Function_Reference/WP_Query" target="_blank">http://codex.wordpress.org/Function_Reference/WP_Query</a>.<span id="more-573"></span></p>
<h2>Il codice</h2>
<pre lang="php">function jblog_orderbyRand()
{
	global $wp_query;

	// Imposta il tipo di ordinamento
	$wp_query-&gt;set('orderby', 'rand');

	// Disabilita la paginazione dei post
	$wp_query-&gt;set('nopaging', true);
	$wp_query-&gt;set('posts_per_page', -1);

	// Reimposta l'array dei post da stampare
	$wp_query-&gt;posts = $wp_query-&gt;get_posts();
}</pre>
<h2>Come utilizzare la funzione</h2>
<p>Innanzitutto copiamo il codice precedente nel file <strong>functions.php</strong> (all&#8217;interno della directory del template). Se il file non esiste basterà crearlo.</p>
<p>Anche se la necessità originale era quella di modificare l&#8217;elenco dell&#8217;archivio di categoria, questa funzione è efficace in ogni pagina del blog che contenga un elenco di post, quindi nell&#8217;homepage, nell&#8217;archivio di tag, ecc.</p>
<p>Per utilizzarla basterà inserirla in testa alla pagina da modificare. Ad esempio, se vogliamo che tutti gli archivi vengano ordinati in modo casuale, dobbiamo aprire il file <strong>archive.php</strong> del template e inserirla in testa:</p>
<pre lang="php">&lt;? // Ordinamento casuale
   jblog_orderbyRand(); 	?&gt;

&lt;? get_header(); ?&gt;
	&lt;div id="content" class="narrowcolumn"&gt;
		&lt;?php if (have_posts()) : ?&gt;
			. . .</pre>
<p>Se, come nel caso del lettore, si deve ordinare in modo casuale solo l&#8217;archivio di categoria scriveremo la funzione all&#8217;interno di un costrutto if in cui si controlla che l&#8217;archivio sia relativo a una categoria.</p>
<p>Questo controllo si esegue ottenendo l&#8217;id della categoria grazie alla funzione <code>get_query_var('cat')</code> che restituisce il valore di una variabile per la query. Nota che quella funzione è equivalente all&#8217;istruzione <code>$wp_query-&gt;get('cat')</code>. Entrambe restituiscono l&#8217;<strong>id (di tipo intero) della categoria</strong>. Questo sarà maggiore di zero se l&#8217;archivio che si sta visualizzando è di categoria.</p>
<pre lang="php">&lt;? // Ordinamento casuale (se id categoria è positivo)
   if(get_query_var('cat')&gt;0)
   jblog_orderbyRand(); 	?&gt;

&lt;? get_header(); ?&gt;
	&lt;div id="content" class="narrowcolumn"&gt;
		&lt;?php if (have_posts()) : ?&gt;
		. . .</pre>
<h2>Svantaggio: non è possibile dividere i post per pagine</h2>
<p>Ogni volta che si carica la pagina viene rigenerato l&#8217;elenco e, dato che viene ordinato in modo casuale, i post non vengono adeguatamente distribuiti nelle varie pagine. In pratica è concreto il <strong>rischio </strong>che dei post apparsi nella pagina 1 possano apparire nuovamente in altre pagine. Per questo motivo viene disabilitata la paginazione.</p>
<p>Inoltre, è necessario applicare un <strong>ultima modifica</strong> al tema della pagina che ospiterà l&#8217;elenco da ordinare in modo casuale. Cioé, è necessario evitare che appaiano <strong>i link &#8220;post precedenti&#8221; e &#8220;post successivi&#8221;</strong>. Nei casi più semplici basterà eliminare il codice relativo a questi link. Se invece l&#8217;ordinamento casuale è condizionato (come nel codice precedente) bisognerà applicare le condizioni (contrarie rispetto a quelle relative alla funzione) alla visualizzazione di questi link:</p>
<pre lang="html">&lt;? // Per la funzione la condizione era get_query_var('cat')&gt;0 (con il "&gt;" anziché "&lt;=")
if(get_query_var('cat')&lt;=0) : ?&gt;
	&lt;div class="navigation"&gt;
		&lt;div class="alignleft"&gt;&lt;?php next_posts_link(__('&amp;laquo; Older Entries', 'kubrick')); ?&gt;&lt;/div&gt;
		&lt;div class="alignright"&gt;&lt;?php previous_posts_link(__('Newer Entries &amp;raquo;', 'kubrick')); ?&gt;&lt;/div&gt;
	&lt;/div&gt;
&lt;? endif; ?&gt;</pre>
<h2>Serve aiuto?</h2>
<p>Come vedi quello che ho scritto nella pagina &#8220;Informazioni&#8221; riguardo l&#8217;aiuto ai lettori non sono solo un mucchio di frasi fatte per riempire una pagina. Quindi <strong>se hai bisogno di aiuto o, più semplicemente, di un consiglio ricordati di passare da qui</strong>. Finché ne avrò il tempo sarò felice di aiutarti! <img src='http://jblog.it/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' title="Wordpress: ordinare gli articoli in modo casuale" /> </p>
<img src="http://jblog.it/?ak_action=api_record_view&id=573&type=feed" alt=" Wordpress: ordinare gli articoli in modo casuale"  title="Wordpress: ordinare gli articoli in modo casuale" />]]></content:encoded>
			<wfw:commentRss>http://jblog.it/2009/06/04/wordpress-query-ordinare-post-articoli-modo-casuale-random_573.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Wordpress plugin: post e pagine casuali (basato su Advanced Random Posts)</title>
		<link>http://jblog.it/2009/04/17/wordpress-plugin-post-pagine-casuali-advanced-random-posts_65.html</link>
		<comments>http://jblog.it/2009/04/17/wordpress-plugin-post-pagine-casuali-advanced-random-posts_65.html#comments</comments>
		<pubDate>Thu, 16 Apr 2009 22:08:55 +0000</pubDate>
		<dc:creator>Giacomo</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://jblog.it/?p=65</guid>
		<description><![CDATA[Una nuova versione del plugin Advanced Random Posts. Questa versione permette di selezionare sia post che pagine, una parte del contenuto, specificare id dei post da includere e da escludere, decidere se inserire in cima alla lista i post inclusi.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><span style="text-decoration: underline;"><a href="http://jblog.it/2009/04/17/plugin-post-pagine-casuali_65.html/"><img class="size-full wp-image-92 alignright" title="Immagine: plugin per post e pagine casuali" src="http://jblog.it/wp-content/uploads/2009/04/random_posts1.jpg" alt="Immagine: plugin per post e pagine casuali" width="270" height="270" /></a></span>A primo impatto avere una lista di post casuali potrebbe sembrarti inutile. Infatti quando un lettore entra in un blog sa già cosa cercare oppure ci è arrivato tramite un motore di ricerca. Allora, perché dovresti inserire una lista di post casuali?</p>
<h4>Vantaggi</h4>
<ul>
<li>leggendo libri sull&#8217;<strong>usabilità</strong> dei siti web ho imparato che gli utenti sono molto pigri ma allo stesso tempo molto curiosi; allora ho pensato che se un lettore vuole leggere altri articoli è troppo pigro per ritornare nella homepage o nell&#8217;archivio, ma non per consultare una lista pronta di articoli da raggiungere con pochi click</li>
<li>se hai inserito il plugin &#8220;post correlati&#8221; hai sicuramente notato che a volte ci sono <strong>pochi articoli correlati</strong>; è proprio in questi casi che torna utile avere una <strong>lista alternativa</strong>, da mostrare automaticamente quando articoli correlati</li>
<li>gli appassionati di seo e guadagni online avranno subito pensato agli effetti in termini di tempo di permanenza; infatti invogliando gli utenti a visitare altre sezioni del sito o leggere altri articoli, ad esempio, avresti un <strong>aumento delle pagine viste</strong> con piacevoli conseguenze sul conto ad-sense <img src='http://jblog.it/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' title="Wordpress plugin: post e pagine casuali (basato su Advanced Random Posts)" /> </li>
<li>quando un <strong>nuovo (e potenziale) lettore</strong> capita nel tuo blog è importante aiutarlo a <strong>scoprire il blog e gli articoli che scrivi</strong>; a tal proposito sarebbe vantaggioso avere il blocco &#8220;post in evidenza&#8221;, con gli articoli, secondo te, qualitativamente migliori</li>
</ul>
<p><span id="more-65"></span></p>
<h4>Svantaggi</h4>
<ul>
<li>il database ha un&#8217;<strong>ulteriore query</strong> da eseguire</li>
<li>anche se di poco, dovrai modificare il <strong>design </strong>della pagina (operazione non gravosa se hai già l&#8217;area riservata ai &#8220;post correlati&#8221;)</li>
</ul>
<h3>Casuali, ma non troppo</h3>
<p>L&#8217;autore del plugin, Yakup GÃ–VLER, ha avuto la bellissima idea di far selezionare (opzionalmente) i post appartenenti alle <strong>stesse categorie</strong> del post principale.  Secondo me è veramente un&#8217;ottima caratteristica perché si mantiene comunque un certo collegamento con il post che si sta leggendo.</p>
<h2>Il plugin</h2>
<p><!--adv300--></p>
<p>L&#8217;autore del <a rel="nofollow" href="http://www.yakupgovler.com/?p=416" target="_blank">plugin originale</a> è <a rel="nofollow" href="http://www.yakupgovler.com" target="_blank">Yakup GÃ–VLER</a>.  Poiché non ero completamente soddisfatto dalla versione originale ho modificato solo la funzione principale. Infatti <strong>la mia versione non può essere gestita dal pannello di controllo</strong>, quindi è necessario entrare nei file del tema per modificare le opzioni.</p>
<h4>Caratteristiche del plugin originale</h4>
<ul>
<li>gestione del plugin nel pannello di controllo</li>
<li>scelta del numero di post (da 1 a 20)</li>
<li>selezione delle categorie dei post da stampare</li>
<li>stampa dei post appartenenti alle stesse categorie del post che si sta leggendo</li>
<li>selezione di id, link e titolo di ogni singolo post</li>
</ul>
<h4>Caratteristiche della mia versione del plugin</h4>
<ul>
<li>unica funzione php da richiamare e configurare all&#8217;interno dei file di template</li>
<li>scelta del numero di post (da 1 a 20)</li>
<li>selezione delle categorie dei post da stampare</li>
<li>stampa dei post appartenenti alle stesse categorie del post che si sta leggendo</li>
<li>selezione di id, link, titolo e contenuto di ogni singolo post</li>
<li>scelta del tipo di post tra &#8220;post&#8221; e &#8220;page&#8221;, o entrambi</li>
<li>scelta del post genitore della pagina</li>
<li>impostazione della lunghezza del contenuto del post</li>
<li>segnalazione dei post da includere ed escludere, con l&#8217;opzione di stampare per primi i post inclusi</li>
</ul>
<h2>Guida all&#8217;utilizzo</h2>
<p>La particolarità di questo plugin (nella mia versione) è che non stampa automaticamente la lista dei post, ma <strong>restituisce un array associativo</strong> da gestire a tuo piacimento.  Per utilizzare la funzione all&#8217;interno del template bisogna avere un array in cui inserire i risultati della funzione. Ecco un <strong>esempio</strong>:</p>
<pre lang="php">&lt;?php
$random_posts = jblog_random_posts("limit=15&amp;current_cat=1&amp;len=200&amp;post_type=post|page");
/*
- limit=15: recupera fino a 15 post
- current_cat=1: recupera i post di tipo "post" appartenenti alle stesse categorie del post che si sta leggendo
- len=200: seleziona anche il contenuto, in particolare i primi 200 caratteri
- post_type=post|page: recupera i post di tipo "post" e di tipo "page"
*/

foreach($random_posts as $random_post) { ?&gt;
&lt;h5&gt;&lt;a href="&lt;? echo $random_post['link']; ?&gt;"&gt;&lt;? echo $random_post['title']; ?&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;? echo $random_post['content']; ?&gt;
&lt;?php } ?&gt;</pre>
<h4>Parametri della funzione</h4>
<p>Come hai potuto notare, la funzione ha un unico parametro di tipo stringa in cui vengono passate le opzioni (nella forma [opzione]=[valore]) separate da &#8220;&amp;&#8221;.</p>
<dl>
<dt><strong>post_type</strong></dt>
<dd>Tipo dei post: &#8220;post&#8221;, &#8220;page&#8221;, &#8220;both&#8221; (entrambi). Default: &#8220;post&#8221;.</dd>
<dt><strong>post_parent</strong></dt>
<dd>ID del genitore del post. Valido solo se post_type=&#8221;page&#8221; o post_type=&#8221;both&#8221;. Default: &#8220;0&#8243;.</dd>
<dt><strong>limit</strong></dt>
<dd>Numero di post da selezionare. Impostare a &#8220;0&#8243; per stampare tutti i post. Default: &#8220;10&#8243;.</dd>
<dt><strong>cats</strong></dt>
<dd>ID delle categorie alle quali devono appartenere i post da selezionare. Valido solo se post_type=&#8221;post&#8221; o post_type=&#8221;both&#8221;.</dd>
<dt><strong>currentcat</strong></dt>
<dd>Impostare a &#8220;1&#8243; per selezionare  tutti i post appartenenti alle categorie del post che si sta leggendo. Valido solo se post_type=&#8221;post&#8221; o post_type=&#8221;both&#8221;. Default: &#8220;0&#8243;.</dd>
<dt><strong>len</strong></dt>
<dd>Lunghezza del contenuto dei post. Impostare con un numero maggiore di &#8220;0&#8243; per stampare il contenuto. Default: &#8220;0&#8243; (quindi non viene restituito il contenuto).</dd>
<dt><strong>exclude</strong></dt>
<dd>ID dei post da escludere.</dd>
<dt><strong>include</strong></dt>
<dd>ID dei post da includere.</dd>
<dt><strong>include_top</strong></dt>
<dd>Impostare a &#8220;1&#8243; per inserire nelle prime posizioni i post specificati da &#8220;include&#8221;. Default: &#8220;0&#8243;.</dd>
</dl>
<h4>Valori restituiti dalla funzione</h4>
<p>Il plugin non prevede la stampa automatica dell&#8217;elenco dei post, ma dovrai provvedere a scrivere un ciclo per la stampa degli elementi.  L&#8217;array che viene restituito è un array di array associativi. Un array associativo invece degli indici numerici ha indici di tipo stringa (molto più user-friendly). In particolare, questo array ha <strong>quattro indici</strong>: id, link, title e content (se len&gt;0), utilizzati nell&#8217;esempio precedente.</p>
<h2>Analisi del codice</h2>
<p>Vorrei fare alcune considerazioni sul codice, soprattutto perché potrei aiutarti nel caso volessi effettuare ulteriori modifiche.</p>
<p><strong>Composizione della query.</strong> Ho avuto modo di provare diverse tecniche per comporre una query durante il controllo e l&#8217;impostazione dei parametri. Durante la modifica di questo plugin ho utilizzato un array associativo (chiamato <code>$sql)</code>. Ogni indice corrisponde a una determinata sezione della query (&#8220;post_type&#8221;, &#8220;include&#8221;, &#8220;limit&#8221;, ecc.). La comodità consiste nell&#8217;avere una singola variabile (anche se complessa) da impostare nelle varie parti del codice e da utilizzare alla fine per comporre la query da eseguire.</p>
<p><strong>Funzioni di wordpress.</strong> Quando si sviluppa un plugin o si scrive una funzione da richiamare all&#8217;interno di wordpress è consigliabile sfruttare le funzioni predefinite come <code>wp_parse_args</code>, <code>apply_filters</code>, ecc. La prima serve per la lettura dell&#8217;unico parametro, <code>$args</code>, e la seconda per applicare un determinato filtro a una stringa. In particolare, la funzione apply_filters è stata utilizzata per la formattazione del titolo: <code>apply_filters('the_title', $post-&gt;post_title)</code>.</p>
<p><strong>Vuoi modificare ulteriormente il plugin?</strong> In effetti potresti aver bisogno di stampare altri dati. Allora ti consiglio di analizzare la variabile <code>$post</code> all&#8217;interno del ciclo <code>foreach</code> (in fondo alla funzione) per scoprire gli altri dati relativi al singolo post da inserire in un nuovo indice dell&#8217;array di array associativi. Ricordati di utilizzare gli opportuni filtri e le opportune funzioni per evitare brutte sorprese!!!</p>
<h3>Prossimamente&#8230;</h3>
<p>Onestamente non credo che questa mia funzione si possa definire &#8220;plugin&#8221;. Tuttavia farò di tutto per sviluppare una versione migliore cioè priva il più possibile di errori, con più opzioni e gestibile interamente dal pannello di controllo.</p>
<h3>Download</h3>
<p>Puoi scaricare il file del plugin <a href="http://download.jblog.it/wp-plugins/jblog_random_posts.zip">qui</a>.</p>
<h3>Crediti</h3>
<ul>
<li><span style="color: #000000; text-decoration: none;">Il </span><a rel="nofollow" href="http://www.yakupgovler.com/?p=416" target="_blank">plugin originale</a> è di <a rel="nofollow" href="http://www.yakupgovler.com" target="_blank">Yakup GÃ–VLER</a></li>
<li>La <a rel="nofollow" href="http://www.flickr.com/photos/adrian_wallett/2324532081/" target="_blank">prima immagine</a> è di <a rel="nofollow" href="http://www.justgiving.com/aliceburns" target="_blank">Adrian Wallett</a></li>
</ul>
<p><span class="highlight_green">Hai domande o suggerimenti da fare? Si sono verificati malfunzionamenti o errori? Vorresti un po&#8217; di aiuto per effettuare particolari modifiche?</span></p>
<img src="http://jblog.it/?ak_action=api_record_view&id=65&type=feed" alt=" Wordpress plugin: post e pagine casuali (basato su Advanced Random Posts)"  title="Wordpress plugin: post e pagine casuali (basato su Advanced Random Posts)" />]]></content:encoded>
			<wfw:commentRss>http://jblog.it/2009/04/17/wordpress-plugin-post-pagine-casuali-advanced-random-posts_65.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
