-->
Home -> Wordpress -> Creare Widget per visualizzare i Post Correlati in WordPress

Creare Widget per visualizzare i Post Correlati in WordPress

3
Jan
2010
2

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!

Condividi:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • MySpace
  • Technorati
  • Twitter
:,

Commenti

2 Trackback / Pingback per questo articolo:

  • diggita.it

    Creare Widget per visualizzare i Post Correlati in 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. L’ idea alla base è quella di modificare la query di selezione dei post…

  • Gestire i post correlati in WordPress | Mr.Webmaster – Blog

    [...] un po’ di codice PHP, vi consiglio di dare un occhiata a due post interessanti pubblicati sul gurucoder.org (post correlati per categoria) e kifulab.net (post correlati per tag) che spiegamo come crearsi da [...]

Lascia il tuo commento:

Cerchi qualcosa?

Usa questo form per cercare argomenti in questo blog:

Non riesci a trovare quello che cerchi? Lascia un commento in un post oppure contattami per risolvere il problema!

Puoi trovarmi su Twitter come @superbre