Archived topic
Disply Category (sub-category) and product in separate line
3 replies · Started by Kevin on May 19, 2022
Woocommerce by default displays categories + products or subcategories + products together.
It does not look clean if you have category or subcategory that does not fill up the whole line and you end up with row with mix of categories or subscategories with product.
Is there a way to separate categories from products?
Thank you.
I am not looking for anything elaborate...just want to add a css code or add something to theme function so that products starts on a separate line instead of continueing after category. I added example page below.
I hope following code will help someone. Works perfectly.
add_action( 'init', 'move_subcat_lis' );
function move_subcat_lis() {
// Remove the subcat <li>s from the old location.
remove_filter( 'woocommerce_product_loop_start', 'woocommerce_maybe_show_product_subcategories' );
add_action( 'woocommerce_before_shop_loop', 'msc_product_loop_start', 40 );
add_action( 'woocommerce_before_shop_loop', 'msc_maybe_show_product_subcategories', 50 );
add_action( 'woocommerce_before_shop_loop', 'msc_product_loop_end', 60 );
}
/**
* Conditonally start the product loop with a <ul> contaner if subcats exist.
*/
function msc_product_loop_start() {
$subcategories = woocommerce_maybe_show_product_subcategories();
if ( $subcategories ) {
woocommerce_product_loop_start();
}
}
/**
* Print the subcat <li>s in our new location.
*/
function msc_maybe_show_product_subcategories() {
echo woocommerce_maybe_show_product_subcategories();
}
/**
* Conditonally end the product loop with a </ul> if subcats exist.
*/
function msc_product_loop_end() {
$subcategories = woocommerce_maybe_show_product_subcategories();
if ( $subcategories ) {
woocommerce_product_loop_end();
}
}
Glad to hear :)