2016-04-07 2 views
0

Я искал на всем протяжении этого сайта и других инструкций о том, как удалить действие из родительской темы, и ничего не работает. Я пытаюсь удалить строку «add_action» с помощью моего ребенка тематических функций файла:Wordpress - Удалить действие из плагина на дочерней теме

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')); 

Я действительно в тупике.

ответ

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); 
+0

Спасибо, но что не работает. Я не знаю, имеет ли это значение, но я добавил ваш код в файл functions.php дочерней темы – user965879

0

Вам нужно из очереди сценариев, потому что крючок «wp_enqueue_scripts» необходим другие ресурсы.

Удалить сценарий в очереди.

Чтобы удалить из очереди, сценарий должен быть установлен в очередь. Попытка отключить скрипт до того, как скрипт окажется в очереди, не будет иметь никакого эффекта.

поэтому вам нужно добавить к вашей function.php

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

Спасибо, но это не сработало. Я не знаю, имеет ли это значение, но я добавил свой код в файл functions.php дочерней темы. Я читал где-то, что вы не можете сделать это, когда действие, которое вы пытаетесь удалить, находится внутри класса – user965879

+0

Вместо этого используйте'wp_print_styles '... 'add_action (' wp_print_styles ',' wpdocs_dequeue_script ', 100);' попробуйте также ' wp_dequeue_style() ' – Apeiron

+0

Пробовал все. Все еще не работает. Благодарю. – user965879