新版 WordPress 网站提速优化方法,最好不要用插件

山羊 1月前  网站  93

用的是最新版的 WordPress 系统,随着文章数量越来越多,最新发现我的网站速度变得越来越慢了,网上搜索很久,感觉太“零散”了,有没有完整一点的建议或方法?最好是代码不要用插件,因为本人已经装了很多插件了~

2 个回答
  • 小何同志 1月前
    2

    之前收藏的一大段优化代码,每个功能模块都有注解,按需索取吧!

    //移除标头超链接 s.w.org
    remove_action('wp_head','wp_resource_hints',2);
    
    //移除文章和评论feed
    remove_action( 'wp_head', 'feed_links', 2 );
    
    //移除分类等feed
    remove_action( 'wp_head', 'feed_links_extra', 3 ); 
    
    // 隐藏WordPress登录失败时的错误提示信息
    function no_wordpress_errors(){
      return 'Something is Wrong.';
    }
    add_filter( 'login_errors', 'no_wordpress_errors' );
    
    //替换Gavatar头像地址
    function get_ssl_avatar($avatar) {
        if (preg_match_all(
            '/(src|srcset)=["\']https?.*?\/avatar\/([^?]*)\?s=([\d]+)&([^"\']*)?["\']/i',
            $avatar,
            $matches
        ) > 0) {
            $url = 'https://cdn.sep.cc';
            $size = $matches[3][0];
            $vargs = array_pad(array(), count($matches[0]), array());
            for ($i = 1; $i < count($matches); $i++) {
                for ($j = 0; $j < count($matches[$i]); $j++) {
                    $tmp = strtolower($matches[$i][$j]);
                    $vargs[$j][] = $tmp;
                    if ($tmp == 'src') {
                        $size = $matches[3][$j];
                    }
                }
            }
            $buffers = array();
            foreach ($vargs as $varg) {
                $buffers[] = vsprintf(
                '%s="%s/avatar/%s?s=%s&%s"',
                array($varg[0], $url, $varg[1], $varg[2], $varg[3])
               );
            }
            return sprintf(
                    '<img alt="avatar" %s class="avatar avatar-%s" height="%s" width="%s" />',
                    implode(' ', $buffers), $size, $size, $size
                );
        } else {
            return false;
        }
    }
    add_filter('get_avatar', 'get_ssl_avatar');
    
    //隐藏核心更新提示
    add_filter('automatic_updater_disabled', '__return_true');
    add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );
     
    //隐藏插件更新提示
    remove_action( 'load-update-core.php', 'wp_update_plugins' );
    add_filter( 'pre_site_transient_update_plugins', create_function( '$b', "return null;" ) );
     
    //隐藏主题更新提示
    remove_action( 'load-update-core.php', 'wp_update_themes' );
    add_filter( 'pre_site_transient_update_themes', create_function( '$c', "return null;" ) );
    
    //禁用古腾堡小工具
    function example_theme_support() {
        remove_theme_support( 'widgets-block-editor' );
    }
    add_action( 'after_setup_theme', 'example_theme_support' );
    
    //WordPress查看站点新窗口打开
    add_action( 'admin_bar_menu', 'customize_my_wp_admin_bar', 80 );
    function customize_my_wp_admin_bar( $wp_admin_bar ) {
    
        //获取view-site 节点以便修改
        $node = $wp_admin_bar->get_node('view-site');
    
        //修改打开方式
        $node->meta['target'] = '_blank';
    
        //更新节点
        $wp_admin_bar->add_node($node);
    
    }
    //禁用懒加载
    add_filter('wp_lazy_loading_enabled', '__return_false');
    
    //移除站点地图用户列表
    add_filter( 'wp_sitemaps_add_provider', function ($provider, $name) {
      return ( $name == 'users' ) ? false : $provider;
    }, 10, 2);
    
    //移除站点地图标签
    add_filter(
        'wp_sitemaps_taxonomies',
        function( $taxonomies ) {
            unset( $taxonomies['post_tag'] );
            return $taxonomies;
        }
    );
    
    // 将默认的wp-sitemap.xml改为sitemap.xml
    add_action( 'init', 'add_new_url_main_sitemap' );
    add_filter( 'home_url', 'fix_wp_sitemap_url', 11, 2 );
    function add_new_url_main_sitemap() {
        add_rewrite_rule( '^sitemap\.xml$', 'index.php?sitemap=index', 'top' );
    }
    function fix_wp_sitemap_url( $url, $path ) {
        if ( '/wp-sitemap.xml' === $path ) {
            return str_replace( '/wp-sitemap.xml', '/sitemap.xml', $url );
        }
        return $url;
    }
    
    //站点地图增加修改时间
    add_filter(
        'wp_sitemaps_posts_entry',
        function( $entry, $post ) {
            $entry['lastmod'] = $post->post_modified_gmt;
            return $entry;
        },
        10,
        2
    );
    
    /* 评论作者链接新窗口打开 */
    function my_get_comment_author_link() {
    $url = get_comment_author_url( $comment_ID );
    $author = get_comment_author( $comment_ID );
    if ( empty( $url ) || 'http://' == $url )
    return $author;
    else
    return "<a target='_blank' href='$url' rel='external nofollow' class='url'>$author</a>";
    }
    add_filter('get_comment_author_link', 'my_get_comment_author_link');
    
    //禁止健康检测
    function prefix_remove_site_health( $tests ) {
        unset( $tests['direct']['php_version'] );
        unset( $tests['direct']['wordpress_version'] );
        unset( $tests['direct']['plugin_version'] );
        unset( $tests['direct']['theme_version'] );
        unset( $tests['direct']['sql_server'] );
        unset( $tests['direct']['php_extensions'] );
        unset( $tests['direct']['utf8mb4_support'] );
        unset( $tests['direct']['https_status'] );
        unset( $tests['direct']['ssl_support'] );
        unset( $tests['direct']['scheduled_events'] );
        unset( $tests['direct']['http_requests'] );
        unset( $tests['direct']['is_in_debug_mode'] );
        unset( $tests['direct']['dotorg_communication'] );
        unset( $tests['direct']['background_updates'] );
        unset( $tests['direct']['loopback_requests'] );
        unset( $tests['direct']['rest_availability'] );
        return $tests;
    }
     
    add_filter( 'site_status_tests', 'prefix_remove_site_health' );
    //删除站点健康
    add_action( 'admin_menu', 'remove_site_health_menu' );
    function remove_site_health_menu(){
    remove_submenu_page( 'tools.php','site-health.php' ); 
    }
    
    //禁止后台谷歌字体
    function coolwp_remove_open_sans_from_wp_core() {
        wp_deregister_style( 'open-sans' );
        wp_register_style( 'open-sans', false );
        wp_enqueue_style('open-sans','');
    }
    add_action( 'init', 'coolwp_remove_open_sans_from_wp_core' );
    
    //文章内链接新窗口打开
    function autoblank($text) {
        $return = str_replace('<a', '<a target="_blank"', $text);
        return $return;
    }
    add_filter('the_content', 'autoblank');
    
    // user_login 不出现在作者的文章列表链接中
    add_filter('author_link', function($link, $author_id, $author_nicename){
        $author    = get_userdata($author_id);
        
        if(sanitize_title($author->user_login) == $author_nicename){
            global $wp_rewrite;
    
            $link    = $wp_rewrite->get_author_permastruct();
            $link    = str_replace('%author%', $author_id, $link);
            $link    = home_url(user_trailingslashit($link));
        }
        
        return $link;
    }, 10, 3);
    
    //作者链接设置为 404 页面
    add_action('pre_get_posts',  function($wp_query) {
        if($wp_query->is_main_query() && $wp_query->is_author()){
            if($author_name = $wp_query->get('author_name')){
                $author_name    = sanitize_title_for_query($author_name);
                $author            = get_user_by('slug', $author_name);
    
                if($author){
                    if(sanitize_title($author->user_login) == $author->user_nicename){
                        $wp_query->set_404();
                    }
                }else{
                    if(is_numeric($author_name)){
                        $wp_query->set('author_name', '');
                        $wp_query->set('author', $author_name);
                    }
                }
            }
        }
    });
    
    //user_login 不出现在 body_class 中
    add_filter('body_class', function($classes){
        if(is_author()){
            global $wp_query;
    
            $author    = $wp_query->get_queried_object();
    
            if(sanitize_title($author->user_login) == $author->user_nicename){
                $author_class    = 'author-'.sanitize_html_class($author->user_nicename, $author->ID);
                $classes        = array_diff($classes, [$author_class]);
            }
        }
        return $classes;
    });
    
    //user_login 不出现在 comment_class 中
    add_filter('comment_class', function ($classes){
        foreach($classes as $key => $class) {
            if(strstr($class, 'comment-author-')){
                unset($classes[$key]);
            }
        }
        return $classes;
    });
    
    //redirect to home page after logout
    add_filter('logout_url', 'my_logout_home', 10, 2);
    
    function my_logout_home($logouturl, $redir)
    {
    $redir = get_option('siteurl');
    return $logouturl . '&redirect_to=' . urlencode($redir);
    }
    
    //禁止外语评论
    function wp_comment_post( $incoming_comment ) {
    $pattern = '/[一-龥]/u';
    $jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';
    $ruattern ='/[А-я]+/u';
    $arattern ='/[؟-ض]+|[ط-ل]+|[م-م]+/u';
    $thattern ='/[-]+/u';
    if(preg_match($jpattern, $incoming_comment['comment_content'])){
    wp_die( "<a style= 'color: #f00;'>Prohibit comments not in Chinese!</a>" );
    }
    if(preg_match($ruattern, $incoming_comment['comment_content'])){
    wp_die( "<a style= 'color: #f00;'>Prohibit comments not in Chinese!</a>" );
    }
    if(preg_match($arattern, $incoming_comment['comment_content'])){
    wp_die( "<a style= 'color: #f00;'>Prohibit comments not in Chinese!</a>" );
    }
    if(preg_match($thattern, $incoming_comment['comment_content'])){
    wp_die( "<a style= 'color: #f00;'>Prohibit comments not in Chinese!</a>" );
    }
    if(!preg_match($pattern, $incoming_comment['comment_content'])) {
    wp_die( "<a style= 'color: #f00;'>Prohibit comments not in Chinese!</a>" );
    }
    return( $incoming_comment );
    }
    add_filter('preprocess_comment', 'wp_comment_post');
    
    //隐藏未分类
    add_filter('get_terms', 'sepcc_hide_product_uncategorized', 10, 4);
    function sepcc_hide_product_uncategorized($terms, $taxonomies, $args , $term_query)
    {
    // 要隐藏的分类类型
    $hide_taxonomies = ['product_cat','category'];
    // 要隐藏的分类slug
    $hide_term_slugs = ['uncategorized'];
    if (array_intersect($hide_taxonomies, $taxonomies) && !is_admin()) {
    foreach ($terms as $k => $term) {
    if (in_array($term->slug, $hide_term_slugs)) {
    unset($terms[$k]);
    }
    }
    }
    return $terms;
    }
    
    //后台显示文章浏览数
    add_filter('manage_posts_columns', function($columns){
        $columns['views']    = __('阅读');
        return $columns;
    });
    
    add_action('manage_posts_custom_column',function($column_name,$id){
        if ($column_name != ''){
            return;
        }
        echo get_post_meta($id, "",true);
    },10,2);
    
    // 移除 WordPress 仪表盘欢迎面板
    function zm_remove_dashboard_meta() {
        remove_meta_box( 'dashboard_right_now', 'dashboard', 'normal' ); // 概览
        remove_meta_box( 'dashboard_primary', 'dashboard', 'normal' );// WordPress活动及新闻
        remove_action( 'welcome_panel', 'wp_welcome_panel' );// 欢迎
    }
    add_action( 'admin_init', 'zm_remove_dashboard_meta' );
    
    // 移除站点健康状态小工具、wp_dark_mode、PHP版本检测
    function wpkj_remove_dashboard_widget() {
        remove_meta_box( 'dashboard_site_health', 'dashboard', 'normal' );
        remove_meta_box( 'wp_dark_mode', 'dashboard', 'normal' );
        remove_meta_box( 'dashboard_php_nag', 'dashboard', 'normal' );
    }
    add_action('wp_dashboard_setup', 'wpkj_remove_dashboard_widget' );
    
    // 设置图片的默认显示方式
    add_action( 'after_setup_theme', 'default_attachment_display_settings' );
    function default_attachment_display_settings() {
        update_option( 'image_default_align', 'center' ); //居中显示
        update_option( 'image_default_link_type', ' file ' ); //连接到媒体文件本身
        update_option( 'image_default_size', 'full' ); //完整尺寸
    }
    
    // 移除 WordPress 加载的JS和CSS链接中的版本号
    function wpdaxue_remove_cssjs_ver( $src ) {
        if( strpos( $src, 'ver=' ) )
            $src = remove_query_arg( 'ver', $src );
        return $src;
    }
    add_filter( 'style_loader_src', 'wpdaxue_remove_cssjs_ver', 999 );
    add_filter( 'script_loader_src', 'wpdaxue_remove_cssjs_ver', 999 );
    
    // 给WordPress分类目录链接删除斜杠
    function mx_untrailingslashit($string, $type_of_url) {
     if ( $type_of_url != 'page' )
     $string = untrailingslashit($string);
     return rtrim( $string, '/\\' );
    }
    add_filter('user_untrailingslashit', 'mx_untrailingslashit', 10, 2);
    
    //禁用 WordPress 登录界面的语言切换器
    add_filter( 'login_display_language_dropdown', '__return_false' );
    
    //移除WordPress后台底部文字
    function footerText () {
        return '';
    }
    add_filter('admin_footer_text', 'footerText', 9999);
    
    add_filter('update_footer', '_admin_footer_right_text', 11);
    function _admin_footer_right_text($text) {
        $text = '';
        return $text;
    }
    
    //仪表盘布局
    function shapeSpace_screen_layout_columns($columns) {
        $columns['dashboard'] = 1;
        return $columns;
    }
    add_filter('screen_layout_columns', 'shapeSpace_screen_layout_columns');
    function shapeSpace_screen_layout_dashboard() { return 1; }
    add_filter('get_user_option_screen_layout_dashboard', 'shapeSpace_screen_layout_dashboard');
    
    //屏蔽站点管理员邮箱定期验证功能
    add_filter( 'admin_email_check_interval', '__return_false');
    
    // Disable auto-embeds for WordPress >= v3.5
    remove_filter( 'the_content', array( $GLOBALS['wp_embed'], 'autoembed' ), 8 );
    
    //屏蔽文章 Embed 功能
    remove_action('wp_head', 'wp_oembed_add_discovery_links');
    remove_action('wp_head', 'wp_oembed_add_host_js');
    
    // 屏蔽 REST API
    add_filter('rest_enabled', '__return_false');
    add_filter('rest_jsonp_enabled', '__return_false');
    
    // 移除头部 wp-json 标签和 HTTP header 中的 link
    remove_action('wp_head', 'rest_output_link_wp_head', 10 );
    remove_action('template_redirect', 'rest_output_link_header', 11 );
    
    //Wordpress 5.0+ 禁用 Gutenberg 编辑器
    add_filter('use_block_editor_for_post', '__return_false');
    remove_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' );
    
    // Disable XML-RPC functionality
    add_filter('xmlrpc_enabled', '__return_false');
    
    //移除后台界面右上角的帮助和显示
    add_action('in_admin_header', function(){
        global $current_screen;
        $current_screen->remove_help_tabs();
    });
    add_action('in_admin_header', function(){
        add_filter('screen_options_show_screen', '__return_false');
        add_filter('hidden_columns', '__return_empty_array');
    });
    
    //移除页面头部的版本和服务发现相关代码
    remove_action('wp_head', 'wp_generator');
    remove_action('wp_head', 'rsd_link');
    remove_action('wp_head', 'wlwmanifest_link');
    remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
    
    //移除 WordPress 大小写修正
    remove_filter( 'the_content', 'capital_P_dangit', 11 );
    remove_filter( 'the_title', 'capital_P_dangit', 11 );
    remove_filter( 'wp_title', 'capital_P_dangit', 11 );
    remove_filter( 'document_title', 'capital_P_dangit', 11 );
    remove_filter( 'comment_text', 'capital_P_dangit', 31 );
    remove_filter( 'widget_text_content', 'capital_P_dangit', 11 );
    
    //彻底关闭 pingback
    add_filter('xmlrpc_methods',function($methods){
        $methods['pingback.ping'] = '__return_false';
        $methods['pingback.extensions.getPingbacks'] = '__return_false';
        return $methods;
    });
    
    //禁用 pingbacks, enclosures, trackbacks
    remove_action( 'do_pings', 'do_all_pings', 10 );
    
    //去掉 _encloseme 和 do_ping 操作。
    remove_action( 'publish_post','_publish_post_hook',5 );
    
    //移除后台隐私相关的页面
    add_action('admin_menu', function(){
        remove_submenu_page('options-general.php', 'options-privacy.php');
        remove_submenu_page('tools.php', 'export-personal-data.php');
        remove_submenu_page('tools.php', 'erase-personal-data.php');
    }, 11);
    
    //WordPress 彻底移除后台“隐私”设置功能
    add_filter( 'map_meta_cap', 'ds_disable_core_privacy_tools', 10, 2 );
    remove_action( 'init', 'wp_schedule_delete_old_privacy_export_files' );
    remove_action( 'wp_privacy_delete_old_export_files', 'wp_privacy_delete_old_export_files' );
    function ds_disable_core_privacy_tools( $caps, $cap ) {
        switch ( $cap ) {
            case 'export_others_personal_data':
            case 'erase_others_personal_data':
            case 'manage_privacy_options':
            $caps[] = 'do_not_allow';
            break;
        }
        return $caps;
    }
    
    //后台提速
    remove_action('admin_init', '_maybe_update_core');
    remove_action('admin_init', '_maybe_update_plugins');
    remove_action('admin_init', '_maybe_update_themes');
    remove_action('init', 'wp_schedule_update_checks'); 
    wp_clear_scheduled_hook('wp_version_check'); 
    wp_clear_scheduled_hook('wp_update_plugins'); 
    wp_clear_scheduled_hook('wp_update_themes');
    
    //禁用emoji表情
    function disable_emojis() {
    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );
    remove_action( 'admin_print_styles', 'print_emoji_styles' );
    remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
    remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
    remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
    add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
    }
    add_action( 'init', 'disable_emojis' );
    
    //Filter function used to remove the tinymce emoji plugin.
    function disable_emojis_tinymce( $plugins ) {
    if ( is_array( $plugins ) ) {
    return array_diff( $plugins, array( 'wpemoji' ) );
    } else {
    return array();
    }}
    
    //RSS feed更新频率
    add_filter( 'rss_update_period', function() {return 'weekly';} );
    add_filter( 'rss_update_frequency', function() {return '2';} );
    
    //隐藏feed 版本号
    function ludou_remove_wp_version() {
      return '';
    }
    add_filter('the_generator', 'ludou_remove_wp_version');
    
    // add icon and logo to RSS feeds
    add_action('rss_head','sep_rss_feed_add_icon');
    add_action('rss2_head','sep_rss_feed_add_icon');
    add_action('commentsrss2_head','sep_rss_feed_add_icon');
    add_action('atom_head','sep_rss_feed_add_icon');
    add_action('comments_atom_head','sep_rss_feed_add_icon');
    function sep_rss_feed_add_icon() { ?>
        <image>
            <url><?php bloginfo_rss('url'); ?>/favicon.ico</url>
            <title><?php bloginfo_rss('name'); ?></title>
            <link><?php bloginfo_rss('url'); ?></link>
            <width>32</width>
            <height>32</height>
            <description><?php bloginfo('description'); ?></description>
        </image>
    <?php
    }
    2 回复引用 引用
  • 3

    代码方式楼上已经很全了!如果你的数据量越来越多,那么推荐 WordPress 优化的另一种方法:缓存。这样别人访问页面的时候,可以直接提供缓存页面和数据,减少了运行站点所需的服务器资源占用,大大提升网站的运行速度。我这里推荐几款经典热门的缓存插件:

    W3 Total Cache(老牌免费缓存插件)

    WP Rocket (非常棒的收费缓存插件,WordPress大学目前用的)

    WP Fastest Cache (值得推荐)

    LiteSpeed Cache (值得推荐)

    WP Super Cache (老牌免费缓存插件, 建议配合 Autoptimize 一起用 )


    如果是VPS或云服务器(内存1G以上),也建议使用 Opcache 和 Memcached 服务器端缓存,性能更佳!

    1 回复引用 引用
    • 探知网
      4
        立即登录 立即注册
返回