我想编写一个函数,从显示类型为子类别的woocommerce中的任何产品类别页面中删除侧边栏。
如果该类别具有显示类型子类别,则某种功能会消失,侧边栏将消失。
任何帮助表示赞赏。
它主要取决于主题自己的自定义。因此,以下代码将仅处理:
woocommerce_sidebar
操作挂钩的默认woocommerce行为。自定义条件函数:
首先,下面是一个自定义条件函数,它将检查是否使用'subcategories'
显示类型设置了产品类别术语:
// Custom conditional function that check for "subcategories" display type in product categories term
function is_subcategory_display_type( $term ) {
$taxonomy = 'product_cat';
if( ! term_exists( $term, $taxonomy ) )
return false;
if( ! is_numeric( $term ) )
$term = get_term_by( 'slug', sanitize_title( $term ), $taxonomy )->term_id;
return get_term_meta( $term, 'display_type', true ) === 'subcategories' ? true : false;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。
1)对于使用默认woocommerce_sidebar
挂钩的常规主题:
// Removing default themes woocommerce sidebar conditionally
add_action( 'woocommerce_sidebar', 'remove_woocommerce_sidebar', 1, 1 );
function remove_woocommerce_sidebar( $name ){
$queried_object_id = get_queried_object_id();
if ( is_product_category() && is_subcategory_display_type( $queried_object_id ) ){
remove_action('woocommerce_sidebar','woocommerce_get_sidebar', 10 );
}
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。
2)对于使用自己的storefront_sidebar
挂钩的Storefront主题:
// Removing default "Storefront" theme woocommerce sidebar conditionally
add_action( 'storefront_sidebar', 'remove_storefront_get_sidebar', 1, 1 );
function remove_storefront_get_sidebar( $name ){
$queried_object_id = get_queried_object_id();
if ( is_product_category() && is_subcategory_display_type( $queried_object_id ) ){
remove_action('storefront_sidebar','storefront_get_sidebar', 10 );
}
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。
3)具有特定定制的其他主题:
您将必须找出用于使代码正常工作的钩子。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句