J'ai une structure permalien qui ressemble à ceci,
% catégorie% /% postname%
J'ai un modèle category.php codé et essayant d'extraire le message d'une certaine catégorie, mon URL peut par exemple ressembler à ceci,
/ catégorie/catégorie1
Je souhaite que tous les articles de la catégorie 1 soient renvoyés. Cependant, lorsque le code suivant est utilisé, la valeur NULL est renvoyée.
get_query_var('cat')
Je suppose que ce code recherche une URL ressemblant à ceci,
? cat = category1
Alors, comment puis-je le faire fonctionner avec des permaliens?
WordPress réécrit les règles de manière invisible, convertit en interne de jolis permaliens au format non joli, et définit les variables appropriées et charge la page demandée. Vous n'avez rien à faire dans votre modèle pour charger des publications d'une catégorie sur une page de catégorie.
La variable de requête cat
sera spécifiquement définie sur leIDde la catégorie demandée, et non sur le nom.
Cela dit, ceci:
$my_category = get_query_var('cat');
echo $my_category;
devrait imprimer l'ID de la catégorie sélectionnée sur une page de catégorie. Si ce n'est pas le cas, nous devrions voir votre code pour vous aider davantage.
Consultez également le $wp_query
global pour voir tous les vars de requête définis sur une page particulière:
global $wp_query
print_r($wp_query);
Cela m'a aidé à obtenir ma réponse, le problème que j'ai trouvé était que l'objet de
global $wp_query
ne contenait pas d'identifiant de catégorie si les permaliens étaient activés. Cependant, il contenait un nom de catégorie, donc pour récupérer l'identifiant de catégorie, le code suivant fonctionnait pour moi.
$category = get_query_var('category_name');
$categoryid = array(get_cat_ID( $category ));
c'est particulièrement utile avec pre_get_posts