Wp_deregister_script是处理页面中不需要的插件的最佳方式吗?

时间:2014-09-12 作者:Sagive

我使用一些“重型”插件,如syntaxhighlighter、GD star rating等。我创建了一个反寄存器。php文件,每当脚本和样式不使用时,我都会使用它来注销它们。

Example:

add_action( \'wp_print_styles\', \'my_deregister_styles\', 100 );
function my_deregister_styles() {

    if (is_home()) {
        wp_deregister_style(\'bbp-default\');
        wp_dequeue_style(\'bbp-default\');
        wp_deregister_style(\'bbp-default-rtl\');
        wp_dequeue_style(\'bbp-default-rtl\');

        wp_deregister_style(\'edd-styles\');
        wp_dequeue_style(\'edd-styles\');

        wp_deregister_style(\'onp-sociallocker\');
        wp_dequeue_style(\'onp-sociallocker\');
    }
}
在这个页面中,我有大约200行代码,因为我正在注销5个插件(大约)的css和js文件,而这些插件没有被使用。

为此,我在每篇文章中创建了一些复选框元框,在这里我可以单击并说“我在这里使用评级”(例如)。

My question is.<我的方式错了吗?使用wp\\u deregister\\u样式和wp\\u deregister\\u脚本的整个过程是否违背了目的?

这些操作的实际使用是否会减慢我的网站速度?有没有更好的方法只在我需要时使用插件以及它们随附的样式和脚本?

I have of course read and searched 但找不到其他东西<希望听到您认为合适的任何解决方案。

1 个回复
最合适的回答,由SO网友:Domain 整理而成

我假设您只想在必要时激活插件。有一个更好的选择可以做到这一点。您可以在某个操作后激活整个插件。我提供了一个示例代码,可以帮助您实现所需的内容,如果您还有任何疑问,可以发表评论。如果对你有效,你可以接受答案。

function run_activate_plugin( $plugin ) {
     $current = get_option( \'active_plugins\' );
     $plugin = plugin_basename( trim( $plugin ) );

         if ( !in_array( $plugin, $current ) ) {
           $current[] = $plugin;
           sort( $current );
           do_action( \'activate_plugin\', trim( $plugin ) );
           update_option( \'active_plugins\', $current );
           do_action( \'activate_\' . trim( $plugin ) );
           do_action( \'activated_plugin\', trim( $plugin) );
           } 

         return null;
       }
         run_activate_plugin( \'akismet/akismet.php\' );

结束