Creare Post In Evidenza Con WordPress
WordPress è il CMS che uso maggiormente per creare blog ma non solo, vista la sua versatilità ed accessibilità al codice per i plugin e per realizzare e personalizzare i template, lo utilizzo molte volte pure per realizzare veri e propri siti.
Visto che il filone WordPress ed hack è un binomio che si sta consolidando qui su IF, continuo con la serie e ti darò alcune dritte per poter visualizzare determinati articoli sulla sidebar del template WordPRess che stai utilizzando.

WordPress Post in Evidenza
Obiettivo
Tempo fa avvo l’ esigenza di dover visualizzare su un box un numero TOT di stralci di post da lasciare in evidenza e da poter togliere o sostituire con altri nuovi a seconda dei casi. Questo metodo l’ ho utilizzato appunto per determinare in prima persona quali articoli e post voler lasciare in rilievo senza l’ utilizzo di plugin che lo facessero in automatico per me, visto che molti, se non tutti questi plugin lo fanno classificando le visualizzazioni di ogni post o i post più votati: io avevo proprio l’ esigenza invece di far visualizzare proprio quei tot che volevo io.
Un esempio concreto?
Puoi vedere il box sulla colonna laterale destra Recensioni e Guide Utili
Prerequisiti
L’ obiettivo è stato raggiunto utilizzando:
- i campi personalizzati di WordPress;
- aggiunta di una funzione nel file function.php dle proprio tema per visualizzare sempre un’ icona accoppiata ad ogni post;
- Custom Field Template come plugin per comodità di inserimento dei valori dei campi personalizzati;
- The Except Reloaded come plugin per gestire la quantità di parole da far visualizzare come stralcio di ogni post sostituendolo alla funzione nativa di WordPress the_excrept();
In questo post non accennerò a come installare i plugin visto che non hanno bisogno di particolari procedure ma vanno scompattati e caricati nella dir canonica di WordPRess wp-content/plugins/ ed attivarli di conseguenza dal pannello di controllo.
Procedura pratica
Premessa: nel box da far visualizzare ho deciso di inserire solo 3 post corredati da:
- titolo;
- stralcio del post in questione;
- eventuale miniatura della prima immagine inserita in tale post;
- possibilità di dare un ordine agli N articoli pubblicati cioè poter scegliere di mettere prima uno e poi un’ altro o viceversa;
Creazione del template per i campi personalizzati
Prima di tutto creo sulla pagina delle opzioni del plugin Custom Field Template un nuovo template
[homepage]
type = radio
value = 0 # 1 # 2 # 3
default = 0
clearButton = true
Dove l’ homepage è l’ etichetta del campo personalizzato, ovvero il nome a cui si darà il valore (value) tra 0 e 3 che indicherà il posizionamento di tale post dentro il box (in prima, seconda o terza posizione – il valore 0 indica che “non ha una posizione”).
Inserire la funzione per la visualizzazione di un’ icona
Nel file function.php del theme che attualmente usi con WordPRess per il tuo blog puoi aggiungere il seguente codice:
<?php
function catch_that_image() {
global $post, $posts;
$first_img = ”;
ob_start();
ob_end_clean();
$output = preg_match_all(‘/<img.+src=['"]([^'"]+)['"].*>/i’, $post->post_content, $matches);
$first_img = $matches [1] [0];if(empty($first_img)){ //Defines a default image
$first_img = bloginfo(‘template_url’). “/images/informatica-friuli.jpg”;
}
return $first_img;
};
?>
Personalizzazione del Template WordPress in uso
Il box in questione per esigenze legate al tema che ho utilizzato ho preferito inserirlo nella sidebar e comunque il codice andrà bene posizionato anche in altre parti del template perchè è modulare ed indipendente. Si potrà pure utilizzare il foglio di stile per poter dare degli standard ai vari elementi del box.
Quello che segue è il codice che servirà a visualizzare thumbnail, titolo e stralcio del post in cui il valore del campo personalizzato homepage ha assunto valore 1 (in pratica non dobbiamo far altro che sul template dei campi personalizzati quando andremo a scrivere o a editare il post, clicchiamo su 1)
<?php query_posts(‘meta_key=homepage&meta_value=1&showposts=1′); ?>
<?php $posts = get_posts(‘meta_key=homepage&meta_value=1&numberposts=1&offset=0′);
foreach ($posts as $post) : start_wp(); ?>
<div class=”box”>
<div class=”thumb”>
<a href=”<?php the_permalink() ?>” title=”<?php the_title(); ?>”>
<img src=”<?php echo catch_that_image() ?>” alt=”<?php the_title(); ?>” alt=”<?php the_title(); ?>”>
</a>
</div><div class=”stralcio”>
<a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></a><br />
<?php the_excerpt_reloaded(15,”,”,false); ?>
</div>
</div>
<?php endforeach; ?>
Puoi copiare questo blocco per ogni post in più da far visualizzare variando nella prima e nella seconda riga il vaolore del meta_value: se come nell’ esempio in questo post vuoi far visualizzare 3 post allora dovrai copiare in serie il codice sopra riportato per tre volte nel tuo template.
…e se due post hanno lo stesso valore?
Se a due post dai lo stesso valore per il loro posizionamento, mettiamo conto che pubblichi un post ora e gli dai valore 1 ma esiste già un altro post che è visualizzato in quello posizione all’ interno del nostro box, allora verrà pubblicato il post con data di pubblicazione più recente.
Per ovviare questa cosa puoi settare a 0 il valore del tuo ultimo post pubblicato.
Questo ebook è il primo pubblicato da Informatica Friuli dedicato alla personalizzazione di certi aspetti dei template per WordPress.
Questo ebook non deve dare grosse aspettative ...
Non c'è hosting, spazio web dove hai caricato i file del tuo sito, che ti da la garanzia al 100% di posizionarti nella serp di Google al primo posto.
[caption id="" ...
Prendo spunto da quanto si può leggere su MasterNewMedia per quanto riguarda il Newsmaster come la figura che filtra e fornisce ...

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.
Leave a Reply