Wp-Hack: il box delle pillole

| |

Dopo la sidebar –della quale vi avevo parlato poco tempo fa– si passa alla index.php e la possibilità di non far comparire i post di una specifica categoria nell’insieme degli articoli, mantenendo il tutto in un box che chiameremo “PILLOLE“, proprio come  nella home page del mio blog.

Wp-Hack: il box delle pillole 1

Le modifiche andranno applicate sul tema utilizzato dal blog, inserendo le righe di codice al giusto posto si otterrà il risultato voluto. Ogni tema è però differente dall’altro, bisognerà quindi stare attenti ad individuare la giusta posizione dove piazzare il codice spiegato nei prossimi paragrafi.

Wp-Hack: il box delle pillole 2ATTENZIONE: 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 riparando ad eventuali errori di distrazione. L’articolo e l’autore non possono essere ritenuti responsabili di alcun danno subito dalla vostra strumentazione. Buon lavoro.

Fiato alle trombe quindi, si parte :)

# exclude posts from some category

Ovvero: escludere i post facenti parte della categoria “Pillole” da quelli visualizzati in Home Page, nella lista completa dei post. Se avete già creato la categoria si può procedere, altrimenti fatelo ora e ricavate l’ID attraverso il metodo spiegato nel post precedente. Nel mio caso la categoria Pillole ha ID 2407.

La documentazione che servirà per questo specifico caso riguarda la funzione The Loop di WordPress, disponibile come sempre nel Codex. Nello specifico facciamo riferimento (appunto) all’esclusione di post di una determinata categoria:

codex.wordpress.org/The_Loop#Exclude_Posts_From_Some_Category

La stringa interessata effettua il controllo di categoria subito dopo il ciclo while che calcola il numero di post da mostrare in pagina. Per l’esattezza si occuperà di saltare” la visualizzazione dei post di una determinata categoria solo nel caso in cui ci si trovi in home page, così da non intaccare archivi e altro:

<?php if (in_category('2407') && is_home() ) continue; ?>

Inserendo la stringa prima della visualizzazione del post permetteremo al ciclo di ignorare la categoria Pillole. Occorrerà piazzarla quindi (secondo documentazione) tra:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

Nel mio tema (BigBlue modificato) questo è il risultato:

<?php if (have_posts()) : ?>
 <?php while (have_posts()) : the_post(); ?>
 <?php if (in_category('2407') && is_home() ) continue; ?>
 <div class="entry">

e funziona egregiamente. Il test è stato effettuato su un post in particolare (Aggiorna MfE sul tuo E65) realizzato e pubblicato in Pillole ma mai visto sulla Home Page tra gli articoli disponibili, raggiungibile solo per permalink o dagli archivi di Giugno 2009.

# la creazione del box

Fatta la prima parte dello sporco lavoro si passa alla visualizzazione in box dedicato. Trattandosi di post alla stregua di “un twitter maggiorato ma di un tumblr minorato” basterà un piccolo spazio lungo tanto quanto la colonna che lo ospita ma alto (nel mio esempio) poco, bastano appena 160 pixel. Chiaro che le dimensioni cambiano nel caso in cui si decida di non inserirlo nella home page ma magari in Sidebar ;-)

Il codice? E’ presto realizzato:

 <b>PILLOLE: notizie flash da Gioxx</b>
 <div class="boxpillole" style="border: 1px solid ; padding: 4px 6px 2px; width: 500px; height: 160px;">
 <?php $my_query = new WP_Query('cat=2407&showposts=1');
 while ($my_query->have_posts()) : $my_query->the_post(); ?>
 <b><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent
 Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></b>
 <?php the_content('Read the rest of this entry »'); ?>
 <?php endwhile; ?>
 </div><br />

Differisce da quello visto l’ultima volta per il semplice fatto che stavolta non si visualizzerà il riassunto del post, ma il contenuto completo con tanto di link o immagini magari (anche se sarebbe meglio non metterne per questioni di corretta visualizzazione ;)) … si nota proprio da quel “the_content” come ultima riga prima della chiusura del ciclo While.

Il box va messo (se si sceglie la home page) prima di qualsiasi altro codice, ancora prima del “<?php if (have_posts()) : ?>“, dopo del get_header e del div content. Per farvi capire meglio ecco il suo posizionamento all’interno dell’index.php di BigBlue:

&lt;?php get_header(); ?&gt;
 &lt;div id=&quot;content&quot;&gt;
 &lt;b&gt;PILLOLE: notizie flash da Gioxx&lt;/b&gt;

Il gioco è così fatto. Se pubblicherete qualcosa all’interno della categoria Pillole (e mi raccomando, nessun’altra se volete tenerlo nascosto) lo vedrete solo ed esclusivamente nel box dedicato (e anche in archivio ovviamente o tramite un search, un link diretto), tutti gli altri post continueranno a susseguirsi nel corpo della home page :)

Cheers!

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato agli articoli "a bruciapelo"!
Se vuoi leggere le altre pillole fai clic qui.

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

7 Commenti
Oldest
Newest Most Voted
Inline Feedbacks
View all comments