Gab*_*iel 24 wordpress plugins
有没有人知道在特定页面上禁用插件(即活动)的真正有效方法?有一些插件在网站的某些页面中并不真正需要,并且它们有很多CSS和JavaScript文件,这些文件会降低网站的加载速度,有时可能会与其他文件冲突.
我知道我可以搞乱插件的代码等,但它并没有真正有效.
有任何想法吗?
提前致谢!
Jes*_*e B 37
尝试Jeff Sterup的"插件管理器"Wordpress插件.你必须在它的设置下启用"选择性插件加载"(确保按照他们的指示启用它)
然后在你的帖子/页面编辑器中,在撰写窗口下方有一个方框,其中包含用于禁用该页面的任何特定插件的复选框
我花了20多个谷歌和Wordpress插件存储库搜索,最终找到了一个简单的解决方案.希望它也适合你!
小智 17
add_filter( 'option_active_plugins', 'lg_disable_cart66_plugin' );
function lg_disable_cart66_plugin($plugins){
if(strpos($_SERVER['REQUEST_URI'], '/store/') === FALSE AND strpos($_SERVER['REQUEST_URI'], '/wp-admin/') === FALSE) {
$key = array_search( 'cart66/cart66.php' , $plugins );
if ( false !== $key ) unset( $plugins[$key] );
}
return $plugins;
}
Run Code Online (Sandbox Code Playgroud)
小智 7
我知道它已经老了,但这个帖子正是我所需要的.
对numediaweb的回答唯一的警告是删除操作需要与添加操作相同的优先级
插件中的钩子
add_action('wp_print_styles', 'easy_fancybox_enqueue_styles', 999);
add_action('wp_enqueue_scripts', 'easy_fancybox_enqueue_scripts', 999);
add_action('wp_head', 'easy_fancybox', 999);
Run Code Online (Sandbox Code Playgroud)
删除钩子的代码
function remove_easy_fancybox() {
global $post;
$ids = array(12,34,55);
if(in_array($post->ID,$ids)):
remove_action('wp_print_styles', 'easy_fancybox_enqueue_styles', 999);
remove_action('wp_enqueue_scripts', 'easy_fancybox_enqueue_scripts',999);
remove_action('wp_head', 'easy_fancybox', 999);
wp_dequeue_script( 'jquery.fancybox' );
wp_dequeue_script( 'jquery.easing' );
wp_dequeue_script( 'jquery.mousewheel' );
wp_dequeue_script( 'jquery.metadata' );
endif;
}
add_action('wp_head', 'remove_easy_fancybox', 1);
Run Code Online (Sandbox Code Playgroud)
来自http://codex.wordpress.org/Function_Reference/remove_action
要点:要删除钩子,$ function_to_remove和$ priority参数必须在添加钩子时匹配.这适用于过滤器和操作.删除失败不会发出警告.
我已经包含了我的if语句,只对特定的帖子id执行操作,认为它可能会有所帮助.
首先检查,如果要删除的插件没有选项菜单,您可以在其中设置要排除的页面.
其次,为ex寻找你的插件动作钩子:
add_action('wp_head', 'easy_fancybox', 999);
Run Code Online (Sandbox Code Playgroud)
这是一个简单的fancybox插件的例子,它挂钩到wordpress标题.要删除它,我将此函数放在您functions.php
和之前wp_head();
调用的任何实例之前:
function remove_easy_fancybox() {
remove_action('wp_head', 'easy_fancybox_enqueue_styles');
remove_action('wp_head', 'easy_fancybox_enqueue_scripts');
remove_action('wp_head', 'easy_fancybox');
wp_dequeue_script( 'jquery.fancybox' );
wp_dequeue_script( 'jquery.easing' );
wp_dequeue_script( 'jquery.mousewheel' );
wp_dequeue_script( 'jquery.metadata' );
}
add_action('wp_head', 'remove_easy_fancybox', 1);
Run Code Online (Sandbox Code Playgroud)