J'essaie donc de faire une déclaration if/else sur un modèle archive.php. Je configure mes archives avec WP archives Smart rechargées (http://wordpress.org/extend/plugins/smart-archives-reloaded/)
Le code de mon archive.php est le suivant:
<?php
if (in_category('166')) { include 'archive-blog.php';
}
else {
echo('foo');
}
?>
J'essaie d'obtenir que archive.php inclue un certain modèle en fonction du numéro de catégorie. Cependant, ce code saisit le modèle de blog d’archive quel qu’il soit (même si je clique sur une archive de catégorie autre que le blog).
Je me demande si je ne le fais pas correctement - in_category ne fonctionne-t-il pas sur une page d'archive? J'ai une configuration similaire avec un single.php qui dirige vers un modèle d'inclusion différent basé sur la catégorie.
Merci!
Update
J'ai aussi essayé d'utiliser is_category et cela semble ignorer complètement ma première condition et faire écho à foo pour toutes les catégories.
<?php
if (is_category('166')) { include 'archive-blog.php';
}
else {
echo('foo');
}
?>
Lien vers ce dont je parle: (allez dans les archives dans la barre de droite)
http://www.metropoliscreative.com/talent-analytics/w/?cat=166
http://www.metropoliscreative.com/talent-analytics/w/?cat=3
aussi, je n'utilise pas de permaliens car le serveur de clients n'a pas de mod-rewrite
Si la mémoire est utile, in_category () est utilisé dans la boucle et renvoie true lorsque la publication en cours appartient à cette catégorie.
Vous êtes probablement pour is_category (166).
Sinon, vous pouvez simplement nommer votre fichier pour que WordPress sache l’utiliser pour cette catégorie. Selon le Codex , WordPress recherche les fichiers suivants (dans cet ordre) afin d’afficher vos catégories:
Donc, si vous avez nommé/créé un fichier modèle appelé category-166.php
, WordPress l'utilisera pour afficher la catégorie 166.
vous y êtes presque ce n'est pas dans la catégorie ('166') mais dans la catégorie is_category ('166'), les différences sont les suivantes:
<?php
$post = $wp_query- >post;
if ( in_category('166') ) {
include(TEMPLATEPATH . '/archive-blog.php’);
} else {
echo('foo');
} ? >
est-ce ce que vous cherchez?
Essayez is_category()
à la place.
Exemple. Vérifiez si dans la catégorie 12 OR 13
<?php if ( is_category('12') || is_category('13')) { ?>
TEST
<?php } ?>