我正在使用Wordpress的子主题, WooCommerce主题Storefront。
Storefront标头挂钩函数的排序方式如下:
<?php
/**
* Functions hooked into storefront_header action
*
* @hooked storefront_skip_links - 0
* @hooked storefront_social_icons - 10
* @hooked storefront_site_branding - 20
* @hooked storefront_secondary_navigation - 30
* @hooked storefront_product_search - 40
* @hooked storefront_primary_navigation_wrapper - 42
* @hooked storefront_primary_navigation - 50
* @hooked storefront_header_cart - 60
* @hooked storefront_primary_navigation_wrapper_close - 68
*/
do_action( 'storefront_header' ); ?>
我想更改顺序, 以便product_search在secondary_navigation之前。
我已经遍历了Storefront文件, 无法找到设置此顺序的位置, 只能找到各个项。
任何人都可以请我帮忙上钩或做些改变订单的事情吗?
#1
@loictheaztec的建议缺少以下add_action-
add_action( 'init' , 'add_and_remove' , 15 );
function mh_add_and_remove() {
remove_action( 'storefront_header', 'storefront_product_search', 40 );
add_action( 'storefront_header', 'storefront_product_search', 25 );
}
#2
为此, 你需要首先使用remove_action()函数将其删除, 然后再使用add_action()函数将其挂接, 将优先级从40更改为25。
优先级25位于:
@hooked storefront_site_branding-优先级20和@hooked storefront_secondary_navigation-优先级30
将此代码段粘贴到活动主题文件夹的function.php中(或更好的是, 将其粘贴到活动子主题文件夹中):
remove_action( 'storefront_header', 'storefront_product_search', 40 );
add_action( 'storefront_header', 'storefront_product_search', 25 );
#3
不确定Loic是否能解决重复的问题, 但是对于所有可能需要答案的问题, 它都需要包装在最初由Scott Eldo建议的函数中。
所以…
add_action( 'init' , 'add_and_remove' , 15 );
function mh_add_and_remove() {
remove_action( 'storefront_header', 'storefront_product_search', 40 );
add_action( 'storefront_header', 'storefront_product_search', 25 );
}
而不是仅仅将其放在function.php中…
remove_action( 'storefront_header', 'storefront_product_search', 40 );
add_action( 'storefront_header', 'storefront_product_search', 25 );
评论前必须登录!
注册