WordPress网站程序性能优化指南:免插件纯代码实现(60+优化技巧合集)

前言

互联网上充斥着大量千篇一律的 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 );

移除页面头部版本信息

//移除页面头部的版本和服务发现相关代码
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登录失败时的错误提示信息
function no_wordpress_errors(){
 return 'Something is Wrong.';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

禁止外语评论

//禁止外语评论
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( "Prohibit comments not in Chinese!" );
}
if(preg_match($ruattern, $incoming_comment['comment_content'])){
wp_die( "Prohibit comments not in Chinese!" );
}
if(preg_match($arattern, $incoming_comment['comment_content'])){
wp_die( "Prohibit comments not in Chinese!" );
}
if(preg_match($thattern, $incoming_comment['comment_content'])){
wp_die( "Prohibit comments not in Chinese!" );
}
if(!preg_match($pattern, $incoming_comment['comment_content'])) {
wp_die( "Prohibit comments not in Chinese!" );
}
return( $incoming_comment );
}
add_filter('preprocess_comment', 'wp_comment_post');

关闭 XML-RPC

// Disable XML-RPC functionality
add_filter('xmlrpc_enabled', '__return_false');

彻底关闭 Pingback

//彻底关闭 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 );

头像与 Gravatar 优化

替换 Gravatar 头像地址

//替换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(
 '',
 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' );

禁用 Gutenberg 编辑器(WordPress 5.0+)

//WordPress 5.0+ 禁用 Gutenberg 编辑器
add_filter('use_block_editor_for_post', '__return_false');
remove_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' );

清理后台界面

//移除 WordPress 仪表盘欢迎面板
function zm_remove_dashboard_meta() {
 remove_meta_box( 'dashboard_right_now', 'dashboard', 'normal' );
 remove_meta_box( 'dashboard_primary', 'dashboard', 'normal' );
 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('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');
});

//移除后台底部文字
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');

后台提速优化

//后台提速
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');

隐私与健康检测清理

//屏蔽站点管理员邮箱定期验证功能
add_filter( 'admin_email_check_interval', '__return_false');

//移除后台隐私相关的页面
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;
}

//禁止健康检测
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' );
}

屏蔽 REST API 与 Embed

//屏蔽 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 );

//屏蔽文章 Embed 功能
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');
// Disable auto-embeds for WordPress >= v3.5
remove_filter( 'the_content', array( $GLOBALS['wp_embed'], 'autoembed' ), 8 );

前端优化

禁用 Emoji 表情

//禁用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' );
function disable_emojis_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}}

禁用懒加载

//禁用懒加载
add_filter('wp_lazy_loading_enabled', '__return_false');

移除 WordPress 加载的 JS 和 CSS 链接中的版本号

// 移除 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 );

禁止后台谷歌字体

//禁止后台谷歌字体
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' );

设置图片默认显示方式

// 设置图片的默认显示方式
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' );
}

SEO 与站点地图优化

站点地图用户列表移除

//移除站点地图用户列表
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

// 将默认的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 autoblank($text) {
 $return = str_replace('<a', '<a rel="noopener"', $text);
 return $return;
}
add_filter('the_content', 'autoblank');

评论作者链接新窗口打开

// 评论作者链接新窗口打开
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' rel='nofollow' href='$url'>$author</a>";
}
add_filter('get_comment_author_link', 'my_get_comment_author_link');

WordPress 查看站点新窗口打开

//WordPress查看站点新窗口打开
add_action( 'admin_bar_menu', 'customize_my_wp_admin_bar', 80 );
function customize_my_wp_admin_bar( $wp_admin_bar ) {
 $node = $wp_admin_bar->get_node('view-site');
 $node->meta['target'] = '_blank';
 $wp_admin_bar->add_node($node);
}

分类目录链接删除末尾斜杠

// 给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);

作者页面优化

作者链接设置为 404 页面

//作者链接设置为 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

//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);
}

隐藏未分类

//隐藏未分类
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'];
$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 != 'views'){
 return;
 }
 echo get_post_meta($id, "views",true);
},10,2);

禁用登录界面语言切换器

//禁用 WordPress 登录界面的语言切换器
add_filter( 'login_display_language_dropdown', '__return_false' );

移除 WordPress 大小写修正

//移除 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 );

RSS Feed 优化

//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');

总结

以上全部代码均添加到主题 functions.php 文件即可生效,无需安装任何插件。这些优化涵盖安全加固、清理冗余、SEO 提升、访问速度优化等多个维度,是目前较为全面的 WordPress 免插件优化方案合集。

实施前建议先备份原 functions.php 文件,以便出现问题时快速回滚。

图片[1]-WordPress网站程序性能优化指南:免插件纯代码实现(60+优化技巧合集)-空木白博客
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容