sep.cc 如涉及侵权内容,请联系 cyclists@outlook.com

「摘抄」Wordpress 网站性能优化指南(免插件)

互联网上充斥着千遍一律的优化,很少有给到实际意义的建议,利用搜索引擎搜索“wordpress 网站优化”,不忍直视它给我的搜索结果。大多都是从宏观上去讲,具体的东西还得自己去摸索,这里我自己整理了一些目前我在使用的优化代码,提供给大家使用。

注意:每一段代码上方都有功能注释,复制到主题 functions.php 文件,按需自取!

//移除标头超链接 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
}

最后编辑:2024年2月20日 05:41:20「本站部分内容具有时效性,如遇失效请留言反馈」

转载声明:本站所有内容采用 CC BY-NC-SA 国际许可协议,转载请注明来源:Sep blog,谢谢!

版权声明:如文章内容涉及侵权,请联系 cyclists@outlook.com,待查证属实之后会立刻删除侵权内容。

评论 (2)
  1. avatar
    沙发
    obaby 2024-02-20 00:38

    这个东西不错,满满的干货啊