我决定使用一个名为Galleria的WooCommerce店面子主题,当我以前使用店面主题时,我使用了常见的remove\\u操作来取消默认设置的挂钩,并替换为我自己的add\\u操作。
然而,由于Galleria是Storefront的子主题,它在文件类Galleria结构中有自己的add\\u操作。尽管add\\u操作的结构似乎有所不同。
storefront中的典型add\\u操作如下所示。。。
add_action( \'storefront_header\', \'storefront_site_branding\', 20 );
在我的函数中,我通常会使用以下命令来解开它。像这样的php文件。。。
remove_action( \'storefront_header\', \'storefront_site_branding\', 20 );
在Galleria儿童主题中,add\\u操作如下所示。。。
add_action( \'storefront_header\', array( \'Galleria_Structure\', \'galleria_top_bar_wrapper\' ), 1 );
add_action( \'storefront_header\', array( \'Galleria_Structure\', \'galleria_top_bar_wrapper_close\' ), 6 );
所以我认为,通过执行以下操作,它将简单地解开它们。。。
remove_action( \'storefront_header\', array( \'Galleria_Structure\', \'galleria_top_bar_wrapper\' ), 1 );
remove_action( \'storefront_header\', array( \'Galleria_Structure\', \'galleria_top_bar_wrapper_close\' ), 6 );
在我的功能中尝试过这一点。php文件我发现它没有效果。
我尝试了使用“init”的建议,但失败了,但是在进一步挖掘之后,我意识到他们已经创建了这些挂钩,作为此处所示的更大功能的一部分。。。
<?php
/**
* Galleria Structure
*
* @author WooThemes
* @since 2.0
*/
if ( ! defined( \'ABSPATH\' ) ) {
exit;
}
if ( ! class_exists( \'Galleria_Structure\' ) ) :
class Galleria_Structure {
/**
* Setup class.
*
* @since 1.0
*/
public function __construct() {
add_action( \'wp\', array( $this, \'layout_adjustments\' ) );
add_filter( \'storefront_products_per_page\', array( $this, \'products_per_page\' ) );
add_filter( \'woocommerce_breadcrumb_defaults\', array( $this, \'change_breadcrumb_delimeter\' ) );
}
/**
* Layout adjustments
* @return rearrange markup through add_action and remove_action
*/
public function layout_adjustments() {
if ( is_woocommerce_activated() ) {
remove_action( \'woocommerce_after_shop_loop_item_title\', \'woocommerce_template_loop_rating\', 5 );
remove_action( \'woocommerce_after_shop_loop_item_title\', \'woocommerce_template_loop_price\', 10 );
add_action( \'woocommerce_before_shop_loop_item_title\', array( \'Galleria_Structure\', \'galleria_product_loop_title_price_wrap\' ), 11 );
add_action( \'woocommerce_after_shop_loop_item_title\', \'woocommerce_template_loop_rating\', 2 );
add_action( \'woocommerce_after_shop_loop_item_title\', \'woocommerce_template_loop_price\', 1 );
add_action( \'woocommerce_after_shop_loop_item_title\', array( \'Galleria_Structure\', \'galleria_product_loop_title_price_wrap_close\' ), 2 );
add_action( \'woocommerce_before_subcategory_title\', array( \'Galleria_Structure\', \'galleria_product_loop_title_price_wrap\' ), 11 );
add_action( \'woocommerce_after_subcategory_title\', array( \'Galleria_Structure\', \'galleria_product_loop_title_price_wrap_close\' ), 2 );
remove_action( \'storefront_header\', \'storefront_header_cart\', 60 );
add_action( \'storefront_header\', \'storefront_header_cart\', 4 );
remove_action( \'storefront_header\', \'storefront_product_search\', 40 );
add_action( \'storefront_header\', \'storefront_product_search\', 3 );
}
remove_action( \'storefront_header\', \'storefront_secondary_navigation\', 30 );
add_action( \'storefront_header\', \'storefront_secondary_navigation\', 6 );
remove_action( \'storefront_header\', \'storefront_site_branding\', 20 );
add_action( \'storefront_header\', \'storefront_site_branding\', 5 );
remove_action( \'woocommerce_cart_collaterals\', \'woocommerce_cross_sell_display\' );
add_action( \'woocommerce_after_cart\', \'woocommerce_cross_sell_display\', 30 );
add_action( \'storefront_header\', array( \'Galleria_Structure\', \'galleria_primary_navigation_wrapper\' ), 49 );
add_action( \'storefront_header\', array( \'Galleria_Structure\', \'galleria_primary_navigation_wrapper_close\' ), 61 );
add_action( \'storefront_header\', array( \'Galleria_Structure\', \'galleria_top_bar_wrapper\' ), 1 );
add_action( \'storefront_header\', array( \'Galleria_Structure\', \'galleria_top_bar_wrapper_close\' ), 6 );
}
/**
* Product title wrapper
* @return void
*/
public static function galleria_product_loop_title_price_wrap() {
echo \'<section class="g-product-title">\';
}
/**
* Product title wrapper close
* @return void
*/
public static function galleria_product_loop_title_price_wrap_close() {
echo \'</section>\';
}
/**
* Primary navigation wrapper
* @return void
*/
public static function galleria_primary_navigation_wrapper() {
echo \'<section class="g-primary-navigation">\';
}
/**
* Primary navigation wrapper close
* @return void
*/
public static function galleria_primary_navigation_wrapper_close() {
echo \'</section>\';
}
/**
* Top bar wrapper
* @return void
*/
public static function galleria_top_bar_wrapper() {
echo \'<section class="g-top-bar">\';
}
/**
* Top bar wrapper close
* @return void
*/
public static function galleria_top_bar_wrapper_close() {
echo \'</section>\';
}
/**
* Products per page
* @return int products to display per page
*/
public function products_per_page( $per_page ) {
$per_page = 19;
return intval( $per_page );
}
public function change_breadcrumb_delimeter( $defaults ) {
$defaults[\'delimiter\'] = \' <span>/</span> \';
return $defaults;
}
}
endif;
return new Galleria_Structure();
有人能给我指一下正确的方向吗?我不知道为什么这不起作用。