在Functions.php中更改Wordpress Hook

时间:2017-01-30 20:51:23

标签: php wordpress function hook

我正在尝试替换一个钩子名称,以便从一个位置删除我的痕迹并添加到页面中的另一个位置。我正在使用一个子主题,我想在我的孩子主题的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的新手,所以如果你有答案,可以简单解释一下为什么会有所帮助。

1 个答案:

答案 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并将其插入另一个插槽。

我希望这会有所帮助。