Wordpress - 从子主题上的插件中删除操作

时间:2016-04-07 18:56:07

标签: wordpress

我在这个网站和其他网站上搜索了有关如何从父主题中删除动作的说明,似乎没有任何效果。我正试图通过我的子主题函数文件删除'add_action'行:

class Quickmart_Woocommerce{
  public function __construct(){
  add_action( 'wp_enqueue_scripts', array( $this, 'loadThemeStyles' ), 20 );
}

这是add_action引用的函数

public function loadThemeStyles() {
  wp_enqueue_style( 'quickmart-woocommerce', $path , 'quickmart-woocommerce-front' , QUICKMART_THEME_VERSION, 'all' );
}

我尝试使用以下内容,但它无效

global $Quickmart_Woocommerce;
remove_action( 'wp_enqueue_scripts', array( $Quickmart_Woocommerce, 'loadThemeStyles' ) );

我真的很难过。

3 个答案:

答案 0 :(得分:0)

您可以通过将您自己的函数挂钩到wp_enqueue_style操作以及以后的优先级并删除样式来简化此操作。 21的优先级确保您的代码在初始入队后运行,其优先级为20

function my_theme_remove_styles(){
    wp_dequeue_style( 'quickmart-woocommerce');
}

add_action('wp_enqueue_style', 'my_theme_remove_styles', 21);

答案 1 :(得分:0)

你需要将脚本出列,因为钩子" wp_enqueue_scripts"其他资源需要它。

删除排队的脚本。

要出列,该剧本必须已入队。在脚本入队之前尝试使脚本出列将无效。

因此您需要将此添加到 function.php

function wpdocs_dequeue_script() {
   wp_dequeue_script( 'quickmart-woocommerce' );
}
add_action( 'wp_print_scripts', 'wpdocs_dequeue_script', 100 );

答案 2 :(得分:-1)

如果其他人有兴趣,请找到答案:

add_action( 'wp_print_styles', 'my_deregister_styles', 100 );

function my_deregister_styles() {
    wp_deregister_style( 'quickmart-woocommerce' );
}

来源:http://justintadlock.com/archives/2009/08/06/how-to-disable-scripts-and-styles