在unctions.php中添加代码会降低执行速度吗?

时间:2019-03-08 作者:cindy

我 将这些代码放入函数中。php来定制我需要的东西。

在添加这些代码之前,后端的ttfb是746ms。

添加后,ttfb为3.6s!!!

速度明显变慢!

有什么方法可以优化吗?

**//back_end footer text**
add_filter(\'admin_footer_text\', \'left_admin_footer_text\');
function left_admin_footer_text($text) {
        //left text
        $text = \'\';
        return $text;}
add_filter(\'update_footer\', \'right_admin_footer_text\', 11);
function right_admin_footer_text($text) {
        //right text
        $text = "Power by Ateam";
        return $text;}

//Logo`s URL
function my_loginURL() {
    return \'#\';
}
add_filter(\'login_headerurl\', \'my_loginURL\');

//login page logo text
function my_loginURLtext() {
    return \'Powered by Ateam\';
}
add_filter(\'login_headertitle\', \'my_loginURLtext\');

//hide the back_end logo
function annointed_admin_bar_remove() {
        global $wp_admin_bar;
        /* Remove their stuff */
        $wp_admin_bar->remove_menu(\'wp-logo\');
}
add_action(\'wp_before_admin_bar_render\', \'annointed_admin_bar_remove\', 0);

//hide the hlep tabs
add_filter( \'contextual_help\', \'wpse50723_remove_help\', 999, 3 );
function wpse50723_remove_help($old_help, $screen_id, $screen){
$screen->remove_help_tabs();
return $old_help;
}

//stop the update notice (Core)
remove_action (\'load-update-core.php\', \'wp_update_themes\');
add_filter( \'pre_site_transient_update_core\', create_function( \'$a\', "return null;" ) );

//stop the update notice(Plugins)
remove_action( \'load-update-core.php\', \'wp_update_plugins\' );
add_filter( \'pre_site_transient_update_plugins\', create_function( \'$a\', "return null;" ) );

//stop the update notice (Themes)
remove_action( \'load-update-core.php\', \'wp_update_themes\' );
add_filter( \'pre_site_transient_update_themes\', create_function( \'$a\', "return null;" ) );

//stop the update (theme)
add_filter( \'auto_update_theme\', \'__return_false\' );

//stop the update (plugins)
add_filter( \'auto_update_plugin\', \'__return_false\' );

//stop the back_ends notices
function pr_disable_admin_notices() {
    global $wp_filter;
      if ( is_user_admin() ) {
        if ( isset( $wp_filter[\'user_admin_notices\'] ) ) {
                unset( $wp_filter[\'user_admin_notices\'] );
        }
      } elseif ( isset( $wp_filter[\'admin_notices\'] ) ) {
            unset( $wp_filter[\'admin_notices\'] );
      }
      if ( isset( $wp_filter[\'all_admin_notices\'] ) ) {
            unset( $wp_filter[\'all_admin_notices\'] );
      }
  }
add_action( \'admin_print_scripts\', \'pr_disable_admin_notices\' );

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

这里有一件事你不应该做:

add_filter( \'pre_site_transient_update_core\', create_function( \'$a\', "return null;" ) );
add_filter( \'pre_set_site_transient_update_plugins\', create_function( \'$a\', "return null;" ) );
add_filter( \'pre_site_transient_update_themes\', create_function( \'$a\', "return null;" ) );
在我的测试中,在新的本地安装上,这大大降低了站点管理方面的速度。这是因为如果瞬态update_core, update_plugins, 和update_themes 如果未找到,则返回对象缓存以获取答案。如果未使用默认情况下未设置的对象缓存,则请求会一直返回到数据库。

我在新安装上做了一些粗略的基准测试。一个典型的管理请求在一个请求中最多调用其中一个瞬态17次。当您登录并查看正面站点时,最多可能有5个。总而言之。

幸运地Jason Jalbuena 找到了更好的方法:

function remove_core_updates () {
    global $wp_version;
    return(object) array(
        \'last_checked\'=> time(),
        \'version_checked\'=> $wp_version,
        \'updates\' => array()
    );
}
add_filter(\'pre_site_transient_update_core\',\'remove_core_updates\');
add_filter(\'pre_site_transient_update_plugins\',\'remove_core_updates\');
add_filter(\'pre_site_transient_update_themes\',\'remove_core_updates\');
资料来源:https://jasonjalbuena.com/disable-wordpress-update-notifications/

这之所以有效,是因为它并没有删除瞬态,只是用一些值来替换它,这些值会诱使WordPress认为检查已经发生,不需要更新任何内容。