在管理的特定页面上禁用插件

时间:2017-04-22 作者:Konstantinos Natsios

我有2个插件

1) FAT库

2) 沙龙预订

所以FAT Gallery有一个特定的js库(select2),它与沙龙预订设置页面冲突。

在此URL中

example.com/wp-admin/post-new.php?post_type=sln_booking
我正在努力DISABLE 胖画廊,因为它导致js错误,我不能做我的工作。

知道如何只在特定页面上阻止它吗?

非常感谢!

3 个回复
最合适的回答,由SO网友:Max Yudin 整理而成

这很简单。

记住,我不知道插件的文件名和目录是什么,下面的代码没有经过测试。

把这个放到functions.php 或者创建一个小插件。

<?php
add_filter( \'option_active_plugins\', \'wpse264498_deactivate_fat_gallery\' );

function wpse264498_deactivate_fat_gallery($plugins){

    // check if you are on the certain page
    global $pagenow;
    if( $pagenow == \'post-new.php\' ) {

        // check if it\'s right CPT
        if( isset($_GET[\'post_type\']) && $_GET[\'post_type\'] == \'sln_booking\') {

            // search the plugin to disable among active plugins
            // Warning! Check the plugin directory and name
            $key = array_search( \'fat-gallery/fat-gallery.php\' , $plugins );

            // if found, unset it from the active plugins array
            if ( false !== $key ) {
                unset( $plugins[$key] );
            }
        }
    }

    return $plugins;
}
还有,你可以试试Plugin Organizer.

SO网友:am_

试试这样的。这不会停用整个插件,只会删除导致问题的脚本。未经测试,如果您不知道如何使用这些函数以及要使用哪些参数,请查看这些函数。

// add this hook if in admin area
if (is_admin()) add_action("wp_enqueue_scripts", "my_dequeue_script", 99);
function my_jquery_enqueue() {
   // don´t do it if it´s not the page you want to remove the script
   if (get_current_screen() != "yourpage") return;
   // deregister the script
   // find the exact name of the script in the plugin where it is registered
   wp_deregister_script(\'fatgalleryScript\');

}

SO网友:bvsmith

我已经测试过了Plugin Organizer 但我发现它很难使用。

作为替代,我发现Freesoul Deactivate Plugins 它有一个非常好和简单的UI,工作非常好。

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。