Retrieves category parents with separator. Show `$category_id`intrequired Category ID. `$link`booloptional Whether to format with link. Default: `$separator`stringoptional How to separate categories. Default Default: `$nicename`booloptional Whether to use nice name for display. Default: `$deprecated`arrayoptional Not used. Default:`$category_id`0 string|WP_Error A list of category parents on success, WP_Error on failure.
View all references VersionDescription4.8.0The Replace [PRODUCT_ID] with the actual ID of your product. This query will return the ID of the top-level parent category of the product, in this case, 5 for the "Books" category. Note that this assumes that your category tree has only one level of parent categories. If you have a more complex category structure with multiple levels of parent categories, you may need to modify the query accordingly. Given any parent category ID, you can get its immediate children with the “parent” argument. For example You can get all top level terms by passing You can instead get all children regardless of generation with the “child_of” arg in place of “parent”.
Thanks for the response, I have no idea how to implement this, im new to wordpress, is there any examples of this online that you know of? Not exactly what you need, but the docs page for get_terms() has a number of user contributed examples. https://developer.wordpress.org/reference/functions/get_terms/ You may need to cobble something together using concepts from different sources. Start with an example that gets terms and loops through the results to generate output. You probably will need one loop nested within the other. The outer loop to get and output top level terms. For each top level term, get its children and loop through those results. Instead, you might try wp_list_categories(). https://developer.wordpress.org/reference/functions/wp_list_categories/ It generates a hierarchical list. It works internally somewhat like I described above so you don’t have to. The drawback is you have less flexibility in output. For example, this will not let you include related images, whereas in the above approach you could include related image tag output in the inner loop. You could try a general internet search, for example “wordpress list child categories” this seems to e the closest thing ive found, I am using the code snippets plugin but when i add the code no change seems to take affect. $taxonomies = get_terms( array( ‘taxonomy’ => ‘taxonomy_name’, ‘hide_empty’ => false ) ); if ( !empty($taxonomies) ) : $output = ‘<select>’; foreach( $taxonomies as $category ) { if( $category->parent == 0 ) { $output.= ‘<optgroup label=”‘. esc_attr( $category->name ) .'”>’; foreach( $taxonomies as $subcategory ) { if($subcategory->parent == $category->term_id) { $output.= ‘<option value=”‘. esc_attr( $subcategory->term_id ) .'”> ‘. esc_html( $subcategory->name ) .'</option>’; } } $output.='</optgroup>’; } } $output.='</select>’; echo $output; endif; or this actually seems to be the closest //return the child categories of parent $cat = get_category( get_query_var( ‘cat’ ) ); $cat_id = $cat->cat_ID; $child_categories=get_categories( array( ‘parent’ => $cat_id ) ); //print foreach ( $child_categories as $child ) { // Here I’m showing as a list… echo ‘
‘; }
I have since found this code, which looks like its meant to achieve my desired output but when I activate the snippet it causes a critical error on my site. $term = get_queried_object(); $children = get_terms( $term->taxonomy, array( ‘parent’ => $term->term_id, ‘hide_empty’ => false ) ); if ( $children ) { foreach( $children as $subcat ) { echo ‘taxonomy)) . ‘”>’ . $subcat->name . ‘ – ‘; $grandchildren = get_terms( $subcat->taxonomy, array( ‘parent’ => $subcat->term_id, ‘hide_empty’ => false ) ); foreach ( $grandchildren as $grandchild ) { echo ‘taxonomy)) . ‘”>’ . $grandchild->name . ‘ – ‘; } } } IGNORE MY PREVIOUS COMMENTS I now have the desired functionality, however the way it displays is incorrect, I want to display the parent cats as titles not images and the children as images not titles, also they are all being listed under the the parent category image title, initially I presumed this was due to the ‘woocommerce_after_subcategory_title’ hook which I was using, but I changed it to ‘woocommerce_after_subcategory’ but that didn’t make any difference at all
Getting the right cats is a good start. I don’t know WooCommerce very well, but from your description and code, Woo is responsible for the parent cat images, our code has nothing to do with it. Something else needs modification to suppress parent images. But we can add images to the sub-cat listing. However, I don’t know how to determine the right image URL, that’s not a standard taxonomy term feature. I can provide a partial solution. Lets assume some other code has somehow gotten the image URL into To get guidance on Woo specific features, I refer you to their dedicated support forum: https://wordpress.org/support/plugin/woocommerce/ Thank you for your response, a modification of this could fix the images or at least show how they are retrieved. I’m just not sure how to implement it in my own code. Also I have posted in the woo forum, thank you for that I didn’t realise there was one, new to wp forums What is the parent category of a category at the topmost level?Parent category (Root): The topmost category in the hierarchy is called a parent category. This category can hold sub-categories (child categories). How to get category name by post id?All you have to do is add this code to your theme's post. php file or in a site-specific plugin: <? php foreach((get_the_category()) as $category) { $postcat= $category->cat_ID; $catname =$category->cat_name; echo $postcat; echo $catname; } ?> How do I get a post specific category in WordPress?Adding Recent Posts by Category in WordPress Sidebar You edit the block settings and scroll to the 'Sorting & Filtering' section. From here, you can choose the category that you want to display posts from. Optionally, you can choose to show featured image, excerpt, author, and more. How do I get only parent category in WordPress?php wpb_get_parent_terms(); ?> This code will display your parent category alone. If you have multiple categories that are the parent or standalone categories, then all such categories will also be displayed. The code snippet will work for all other taxonomies as well. |