我正在尝试替换一个钩子名称,以便从一个位置删除我的痕迹并添加到页面中的另一个位置。我正在使用一个子主题,我想在我的孩子主题的functions.php中完成这个。会发生的是,该功能从一个位置移除,并添加到新位置,但它会触发两次,所以我有两个面包屑堆叠在一起。
父主题功能如下所示:
/*-----------------------------------------------------------------------------------*/
/* Breadcrumb display */
/*-----------------------------------------------------------------------------------*/
add_action('woo_main_before','woo_display_breadcrumbs',10);
if (!function_exists( 'woo_display_breadcrumbs')) {
function woo_display_breadcrumbs() {
global $woo_options;
if ( isset( $woo_options['woo_breadcrumbs_show'] ) && $woo_options['woo_breadcrumbs_show'] == 'true' && ! (is_home()) ) {
echo '<section id="breadcrumbs">';
woo_breadcrumbs();
echo '</section><!--/#breadcrumbs -->';
}
} // End woo_display_breadcrumbs()
} // End IF Statement
这就是我在子主题的functions.php文件中所拥有的。
add_action( 'woo_main_before', 'remove_woo_display_breadcrumbs', 0 );
function remove_woo_display_breadcrumbs() {
remove_action('woo_main_before','woo_display_breadcrumbs',10);
}
add_action('woo_content_before','woo_display_breadcrumbs',10);
顺便说一下,这是Woo Themes的Mystile主题。我是Hooks的新手,所以如果你有答案,可以简单解释一下为什么会有所帮助。
答案 0 :(得分:0)
好的,首先,要解决您需要执行以下操作的问题:
remove_action('woo_main_before', 'woo_display_breadcrumbs', 10); // Removes from the original location
add_action('woo_content_before', 'woo_display_breadcrumbs', 10); // Adds to the new location
&#39; 10&#39;是函数针对特定操作运行的优先级。把它想象成一个插槽。
因此插槽0完全独立于插槽10。
我们在上面的代码示例中所做的就是从一个插槽中取出woo_display_breadcrumbs
并将其插入另一个插槽。
我希望这会有所帮助。