Get the id of a WooCommerce product category by its name or slug

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?

2 Answers

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 
0

The code seems to be correct, try a var_dump to see what you are getting from get_category_by_slug($pagename)

$idObj = get_category_by_slug($pagename); var_dump($idObj); 
1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like