前言
WordPress 是全球用户最多的开源 PHP 网站程序,很多人通过 WordPress 搭建官网、博客、商城等各种网站。但是很多新手搭建的 WordPress 网站运行速度总是感觉不够理想,想要优化却又不知从何入手。今天 66哥 就整理一些所有人都能够通用的 WordPress 网站运行速度的小技巧分享给大家。
步骤
优化技巧 1 「去掉 emojis 表情图标」
WordPress 默认调用 emojis 表情图标,但是绝大多数主题要么没有表情图标要么也是调用的其他的表情图标,所以我们可以禁用 emojis 表情。
//禁止emojis表情
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();
}
}
优化技巧 2 「去除前端调用 JS、CSS 后缀版本号」
//去除加载的css和js后面的版本号
function sb_remove_script_version( $src ){
$parts = explode( '?', $src );
return $parts[0];
}
add_filter( 'script_loader_src', 'sb_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', 'sb_remove_script_version', 15, 1 );
优化技巧 3 「禁止自PING和版本保存」
function no_self_ping( &$links ) {
$home = get_option( 'home' );
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, $home ) )
unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );
remove_action('pre_post_update', 'wp_save_post_revision');
add_action('wp_print_scripts', 'disable_autosave');
function disable_autosave() {
wp_deregister_script('autosave');
}
优化技巧 4 「禁止部分头部模块」
remove_action( 'wp_head', 'wp_generator' );
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
优化技巧 5 「关闭 XML-RPC」
// 关闭 XML-RPC 功能
add_filter('xmlrpc_enabled', '__return_false');
优化技巧 6 「关闭 REST API」
很多 WordPress 主题是不需要 REST API 的,但是 WordPress 默认在前端加载了这个功能,我们可以禁用此功能。
// 关闭 REST API
add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');
优化技巧 7 「移除头部 JSON」
//移除头部 wp-json 标签和 HTTP header 中的 link
remove_action('wp_head', 'rest_output_link_wp_head', 10 );
remove_action('template_redirect', 'rest_output_link_header', 11 );
优化技巧 8 「禁用 Gutenberg 编辑器」
//禁用Gutenberg编辑器
add_filter('use_block_editor_for_post', '__return_false');
remove_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' );
优化技巧 9 「将 jquery 文件移动到底部加载」
//强制jquery库文件底部载入
function ds_print_jquery_in_footer( &$scripts) {
if ( ! is_admin() )
$scripts->add_data( 'jquery', 'group', 1 );
}
add_action( 'wp_default_scripts', 'ds_print_jquery_in_footer' );
优化技巧 10 「网页链接后面增加反斜杠」
// 页面链接后添加反斜杠
function itbulu_nice_trailingslashit($string, $type_of_url) {
if ($type_of_url != 'single')
$string = trailingslashit($string);
return $string;
}
add_filter('user_trailingslashit', 'itbulu_nice_trailingslashit', 10, 2);
后语
以上这些代码片段可以酌情选择添加到你的主题模板 functions.php
文件中即可生效。
建议大家逐条测试,虽然这 10 条优化技巧绝大多数网站直接启用都没问题,但是有可能你的网站其他插件会与这些代码段产生冲突,比如:REST API 禁用,绝大多数网站都是不需要的,但我的网站主题就需要 REST API 功能,所以我不能禁用。