2010-08-19 9 views
0

Ce que je n'arrive pas à comprendre est une méthode pour faire passer l'identifiant de catégorie en cours à header.php quand on clique sur un article.Passer des variables entre category.php à single.php?

Alors disons que je suis sur la catégorie 2 et que je clique sur un article qui appartient à plusieurs catégories. Je veux que le single.php conserve l'apparence d'être sur la catégorie 2. Pour ce faire, j'aurais besoin d'une variable pour dire à l'en-tête de quelle catégorie il vient

Répondre

0

Il suffit de nommer votre template catégorie-X.php, où X est le nom de la catégorie spécifique ou l'ID pour lequel vous voulez un modèle personnalisé, et placez-le dans un dossier/unique dans votre répertoire de thème principal. Maintenant, à chaque fois qu'un seul post est appelé et qu'il correspond à un modèle existant dans ce dossier, il l'utilise pour afficher le message à la place du fichier single.php. Si aucune correspondance n'est trouvée, alors single.php est utilisé.

dans functions.php:

define(SINGLE_PATH, TEMPLATEPATH . '/single'); 
add_filter('single_template', 'force_cat2single_template'); 

function force_cat2single_template($single) { 
global $wp_query, $post; 
foreach((array)get_the_category() as $cat) : 

     if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php')) 
      return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'; 

     elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php')) 
      return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'; 
     endforeach; 

     if(file_exists(SINGLE_PATH . '/single.php')) 
      return SINGLE_PATH . '/single.php'; 
     elseif(file_exists(SINGLE_PATH . '/default.php')) 
      return SINGLE_PATH . '/default.php'; 
    return $single; 
}