wordpress : impossible d’obtenir l’identifiant de catégorie lorsque l’URL de référencement est activée

Publié par Jean-Michel le

<?php
/*
Plugin Name: Members
*/

   function myFilter2($query)
    {

        if ($query->is_category)
        {
            $currently_listing_categories = $query->query_vars['category__in'];
            print_r($currently_listing_categories);
        }

    }

    add_filter('pre_get_posts','myFilter2');
?>

Ce plugin affiche les identifiants de catégorie lorsque l’url n’est pas optimisée pour le référencement

http://domain.com/wplab/wpla4/?cat=4

. mais quand j’active le SEO

http://domain.com/wplab/wpla4/category/members/

le tableau est vide

comment puis-je obtenir l’identifiant de catégorie avec des URL optimisées pour le référencement

Solution n°1 trouvée

Collez dans votre functions.phpou utilisez dans votre plugin

add_filter('pre_get_posts','myFilter2');
function myFilter2()
{
    global $wp_query;
    $cat_name= $wp_query->query_vars['name'];
    $cat_id=get_cat_id($cat_name);
    echo $cat_id; // the category id will be available, echo is for testing only
}

Lorsque l’URL est commehttp://example.com/category_name

<img src= »https://i.stack.imgur.com/gJpls.png » alt= »entrez la description de l’image ici »>

Solution n°2 trouvée

Utilisez cette fonction pour obtenir la catégorie actuelle dans wp :

function getCurrentCatID(){

 global $wp_query;
 if(is_category() || is_single()){
  $cat_ID = get_query_var('cat');
 }
 return $cat_ID;

}

echo getCurrentCatID();

Je viens de trouver pour vous aussi essayez ceci,

if(isset($wp_query->get_queried_object()->cat_ID))
{
    $cur_catId = $wp_query->get_queried_object()->cat_ID;
}
if(isset($wp_query->get_queried_object()->ID))
{
    $cur_postId = $wp_query->get_queried_object()->ID;
}

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *