Find the Category ID using the Category Slug in WordPress
This is a quick little piece of code that I have been using a lot lately. I needed to get the category ID but all I had to work with was the category slug. Luckily WordPress has a neat little function called get_term_by() which makes it super easy. The function can be used to get a lot more information but for this example I am just going to extract the ID.
The function works like this:
<?php get_term_by( $field, $value, $taxonomy, $output, $filter ) ?> |
$field: (string) (required) Either ‘slug’, ‘name’, or ‘id’. Default: None
$value: (string|integer) (required) Search for this term value. Default: None
$taxonomy: (string) (required) Taxonomy Name. Default: None
$output: (string) (optional) Constant OBJECT, ARRAY_A, or ARRAY_N. Default: OBJECT
$filter: (string) (optional) default is raw or no WordPress defined filter will applied. Default: ‘raw’
We are going to use it like this to get the ID with the category slug ‘tutorials’:
<?php $theCatId = get_term_by( 'slug', 'tutorials', 'category' ); $theCatId = $theCatId->term_id; ?> |
If you insert a print_r() function you can echo out all the information that the get_term_by() function contains. Use something like this and see if there is other information that you might want to extract:
<?php $theCatId = get_term_by( 'slug', 'tutorials', 'category' ); print_r($theCatId); ?> |
Then all you would have to do is use whichever term your see between those square brackets like so:
<?php $theCatId = get_term_by( 'slug', 'tutorials', 'category' ); $theCatId = $theCatId->description; ?> |
Exactly what I was looking for. Thanks!
Me too. i really hate hard coding the category id directly.
I have permalinks set up.
Before permalinks setup I have query string like this,
http://localhost/wordpress/products-page?category=2&product_id=11
And by changing it to permalinks to numeric,
It shows ;
http://localhost/wordpress/products-page/po-campo1/product-3
There is
po-campo1 is category
product-3 is product in po-campo1 category.
So, how can I get category_id and product_id at the top of the page?
If you know that please share it with me, I really need it.
Thanks.
If you want to get the cat id and the product id in the URL you will have to do some messing around with your .htaccess file.
Hard to say why the guys on WP Codex site didn’t added such a little (and useful) piece of code when writing docs about this function. Thanks for your help!