【问题标题】:Change a Wordpress Hook in Functions.php在 Functions.php 中更改 Wordpress 挂钩
【发布时间】:2017-02-08 02:51:27
【问题描述】:

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

【问题讨论】:

    标签: php wordpress function hook


    【解决方案1】:

    好的,首先,要解决问题,您需要执行以下操作:

    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
    

    “10”是函数针对特定操作运行的优先级。把它想象成一个插槽。

    所以插槽 0 完全独立于插槽 10。

    我们在上面的代码示例中所做的只是将woo_display_breadcrumbs 从一个插槽中取出并将其插入另一个插槽。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-02-09
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      • 2016-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多