删除Wordpress中插件添加的操作

时间:2016-01-21 23:29:25

标签: wordpress wordpress-plugin hook action

我正在使用Wordpress的Popup Maker插件,我试图阻止它使用子主题的functions.php文件加载到特定页面。

我在插件的目录中找到了文件popup-maker.php,其中包含最后一行:

 add_action( 'plugins_loaded', 'popmake_initialize', 0 );

如果我删除/评论此行,弹出窗口将不会触发,所以我想这是我需要删除的操作。我已阅读WP codex和众多帖子,但仍然无法使其发挥作用。

现在我被困在这个(我在我的孩子主题中添加的函数&functions.php文件):

function remove_popmaker() {
    remove_action('plugins_loaded', 'popmake_initialize', 0);
    }

add_action( 'init', 'remove_popmaker', 1 );

PS:我正在使用shopkeeper主题和Woocommerce。

所有帮助表示感谢,谢谢。

3 个答案:

答案 0 :(得分:1)

您要在$(function(e){ $('#cl').click(function(e){ //Select any input that has the class "att" and apply the val() function $('.att :input').val('123'); //Select any element that is not an input and apply the text() function $('.att').not(':input').text('123'); //Search for an element with a known ID but apply `val()` if the element is input $('#text .att :input').val('123'); //Search for an element with a known ID but apply `text()` if the element is not an input $('#text .att').not(':input').text('123'); }); }); 之后添加一个init的操作,因此您无法在操作后删除操作。

您可以尝试相同的操作,但您必须从插件

执行此操作
plugins_loaded

但是我怀疑在您之后运行之前添加了操作,如果不是您可能需要编写一个MUplugin(google this),这可能是不可预测的。

答案 1 :(得分:0)

我设法做到了这一点:

add_action('wp', 'disableEmailPopup');
function disableEmailPopup () {
    global $post;
    if ($post->ID === 11625249) return remove_action( 'wp_enqueue_scripts', 'popmake_load_site_scripts');
}

答案 2 :(得分:0)

@BMM - 如果不知道为什么需要在一个页面上禁用整个插件的用例,很难给出最佳答案。

例如,如果您只想在一个页面上显示单个弹出窗口,则可以使用条件面板使用(!)按钮添加否定条件。点击它将其变为红色,您将检查条件的相反情况,因此(!) Page Selected: Page xyz会阻止它在该页面上加载。

或者,您可以create your own custom conditions允许您将该条件添加到任何弹出窗口中。

最后,如果您只想从前端解开它,您可以简单地删除渲染&脚本处理程序

remove_action( 'wp_footer', 'popmake_render_popups', 1 );
remove_action( 'wp_head', 'popmake_script_loading_enabled' );

如果你想阻止查询

remove_action( 'wp_enqueue_scripts', 'popmake_preload_popups', 11 );

希望有所帮助。