Template WordPress Per i Singoli Post Di Una Categoria Particolare

Pubblicato da Davide Tommasin

WordPress è molto versatile per quanto riguarda la personalizzazione grafica e dei template. Per un cliente ho avutop l’ esigenza di creargli un blog basato su WordPress in maniera altamente personalizzata dal lato dell’ impostazione del layout.

Problema: riuscire a creare un template grafico standard SOLO per il singolo post di una data categoria. Non il template dedicato quando vado a consultare la pagina archivio di una data categoria, che sarà lo stesso template standard di tutto il sito, ma SOLO esclusivamente quando vado a leggere un singolo articolo di QUELLA categoria.

Soluzione:

  1. Preventivamente dovrete creare all ‘interno della dir del template che state utilizzando un file denominato single-ID.php dove ID sarà l’ id della categoria che vogliamo prendere in considerazione.
  2. Bisognerà editare successivamente il file single.php ed inserire le seguenti righe di codice php:
<?php
$category = get_the_category();
$currentcat = $category[0]-&gt;cat_ID;
// parte la condizione - Se esiste il single-ID allora...
if (file_exists(TEMPLATEPATH."/single-$currentcat".".php")) {
// includi il codice che trovi al suo interno direttamente qui
include(TEMPLATEPATH."/single-$currentcat".".php");
} else {
// qui verrà inserito il codice che vogliamo far visualizzare negli articoli che NON sono della categoria incriminata - se lo lasciate vuoto chiaramente non mostrerà nulla
}
?>

NOTA: questa soluzione non l’ ho testata ancora a fondo ma per ora fa il suo dovere. Se c’è qualcuno che può portare il suo feedback i commenti sono aperti ;)

[UPDATE]

Soluzione molto più elegante di quella riportata pi su è quella di inserire una stringa all’ interno del functions.php del tema che utilizzi su WordPress.

<?php add_filter('single_template', create_function('$t', 'foreach( (array) get_the_category() as $cat ) { if ( file_exists(TEMPLATEPATH . "/single-{$cat->term_id}.php") ) return TEMPLATEPATH . "/single-{$cat->term_id}.php"; } return $t;' )); ?>

[/UPDATE]

Pubblicato in Tutorial & How To
  • Devi's

    Ciao, sono alle prime armi e mi servirebbe proprio fare quello che spieghi ma non capisco alcuni passaggi:
    1 l' ID della categoria dove va inserito?;
    2 quando scrivi “//includi il codice che trovi al suo interno direttamente qui” quale codice intendi cioè di cosa?

    Grazie

  • http://www.tommasin.org king_hack

    Ciao Devi's
    Ho scritto un po di fretta il post. Vado a riponderti per punti:
    1. L' ID della categoria va inserito nel single-ID.php, sostituendo ID col numero categoria nel nome del file (esempio: single-123.php, single-3.php …)
    2. quello è un commento (le linee all 'interno del codice php che iniziano con due // indicano al php di non eseguire quella linea) che può forviare: volevo intendere che la linea di codice dopo quel commento (include…) fa in modo che quel comando php va da solo a recuperare il codice che è all' interno del file single-ID.php (dove ID come dicevo al punto 1 è sostituito dal numero della categoria)

    Spero di averti risposto :)

  • N Patriarca

    Ciao,
    sto cercando di realizzare un template specifico per i post di una categoria. Ma non riesco a capire cosa della mia pagina single.php (che è un po complicata) devo inserire qui:
    } else {// qui verrà inserito il codice che vogliamo far visualizzare negli articoli che NON sono della categoria incriminata – se lo lasciate vuoto chiaramente non mostrerà nulla}qui puoi vedere la mia single.php: http://pastie.org/2120084grazie tante per l’aiuto!!!!!

  • http://www.tommasin.org king_hack

    Ciao N Patriarca.
    Alla tua domanda ti rispondo che tra le parentesi graffe dopo l’ else ci andrà il loop o comunque il codice da dare “in pasto” ai singoli post che non fanno parte della categoria su cui vuoi i post con il template/loop “diverso”.

    Per il link al tuo codice, non so cosa vuoi ottenere. Magari se mi fai una domanda un po più specifica o mi indichi l’ obiettivo che vuoi raggiungere potrei provare a darti qualche suggerimentoi ;)

blog comments powered by Disqus

Twitter

Seguici Themes Free e PRO

@KING_Hack Template Free e PRO per WordPress

Newsletter CMS Italia

Your email:

 

Servizi Web e Hosting SEO

Hai bisogno di consulenza e supporto per personalizzare un template per WordPress? Puoi contattarci per chiederci consulenza sul web design.

hosting

Hai bisogno di Hosting? Possiamo offrirti spazio e servizi web per WordPress.