WordPress masque ou affiche la catégorie de la boucle dans certains cas
Je souhaite exclure une certaine catégorie par défaut dans la liste des publications affichées sur la page d’accueil. J’ai découvert comment je peux le faire proprement avec le crochet pre_get_posts. Cela fonctionne bien et les messages de catégorie ne s’affichent pas.
Maintenant, je veux afficher ces messages de catégorie UNIQUEMENT si j’interroge spécifiquement pour cette catégorie. Ainsi, soit tous les messages qui ne sont pas dans cette catégorie sont affichés (par défaut), soit seuls les messages de ce chat et rien d’autre. Je pensais que la solution est simple, mais mon code ne fonctionne pas:
//Don't show posts with cat id 6
$excluded = array('6');
//Retrieve category parameter from current query
$categ = get_query_var('cat');
//If the current query doesn't ask for cat 6 specifically,
//exclude this category
if ($categ != '6') {
set_query_var('category__not_in', $excluded);
}
Mais lorsque j’interroge pour la catégorie spécifique, rien n’est toujours affiché, donc apparemment mon instruction if est fausse? Je pensais que lorsque j’interrogeais la catégorie, get_query_var(‘cat’) renverrait l’identifiant du chat ?
Solution n°1 trouvée
Trouvé la réponse via https://wordpress.stackexchange.com/questions/26889/get-query-var-and-permalinks
Apparemment, lors de l’utilisation de jolis permaliens, WordPress fait des choses internes telles que l’ID de catégorie n’est pas défini dans la requête, mais plutôt le nom de la catégorie. J’ai donc simplement changé la résolution de catégorie pour
$categ = get_cat_ID(get_query_var('category_name'));
et ça marche bien. Encore une idée de WordPress pour embêter les développeurs lol
0 commentaire