Get the id of a WooCommerce product category by its slug

17,750

With a custom taxonomy is recommended to use get_term_by() instead :

$category = get_term_by( 'slug', $pagename, 'product_cat' );
$cat_id = $category->term_id

Reference: Get category ID from term slug…


To get a product category ID from term name, use:

$category = get_term_by( 'name', $pagename, 'product_cat' );
$cat_id = $category->term_id
Share:
17,750
aln447
Author by

aln447

Updated on June 04, 2022

Comments

  • aln447
    aln447 almost 2 years

    I have a wp template that I would like to assign to some pages. The template would ie. display all WooCommerce products that have the same master category name as the pages name itself.

    By far I have tried using this code, but with no good output:

    $idObj = get_category_by_slug($pagename);
    $id = $idObj->term_id;
    echo ": ". $id;
    

    Unfortunately, the echo does not display anything.
    Echoing $pagename works, and returns me the slug of the page.

    Any good way I could make this work?

  • Bossman
    Bossman over 3 years
    Just for reference: This is for Wordpress "categories". WooCommerce categories use "product_cat" so you have to use get_term_by()