阿里云
阿里云大学认证0元起
发表主题 回复主题
  • 3223阅读
  • 3回复

[教程]让 WordPress 飞起来的几个 function

级别: 论坛版主
发帖
9348
云币
14154
— 本帖被 不靠谱贝贝 设置为精华(2017-09-18) —
介绍 Iak0 [6Ey  
[Vdz^_@Y  
m+ itno  
WordPress 毕竟是歪果仁开发系统放到中国来会有一些水土不服,因为有广泛的使用到一些境外网站服务以及一些不必要的功能导致 WP 网站变慢,这里就将介绍如何通过 function.php 来精简 WP。 j8 C8X$  
functions.php 是 WordPress 预留的功能函数文件,专门用于添加各种定义函数代码。现在的WordPress主题的功能越来越强大了,一般都自带了 functions.php 这个文件(通常在主题根目录)。 eo^/c +FG  
WordPress 加速的一个要点就是能不用插件就不要用插件,插件越多网站越慢 zdSh:  
例如,我的主题目录是:/data/wwwroot/www.mf8.biz/wp-content/themes/mf8themes/,那么在该目录下就存在 functions.php 文件,使用代码编辑器修改它。 /(t sb  
sCl$f7"  
内容 `P@- %T  
HEA eo!  
pUl8{YGS  
首先,我们将那些被墙的内容去掉,打不开会拖慢速度。下面是我从各网站搜罗来的 WP 精简 function 内容,大家选择性使用,尽量一个一个的添加,因为有些主题和插件可能会依赖到某些函数。 5jq=_mHt  
@tRMe6 4  
禁用谷歌字体 fRTo.u  
>NV=LOO  
NN 0Q`r,8}  
如果使用了 WP 默认的主题那么需要通过插件解决: Remove Open Sans font Link from WP core b]gY~cbI8  
如果是其他主题,添加: #t!}K_  
O7aLlZdg~  
ix Z)tNz  
  1. /**
  2. * WordPress 后台禁用Google Open Sans字体,加速网站
  3. */
  4. add_filter( 'gettext_with_context', 'wpdx_disable_open_sans', 888, 4 );
  5. function wpdx_disable_open_sans( $translations, $text, $context, $domain ) {
  6.   if ( 'Open Sans font: on or off' == $context && 'on' == $text ) {
  7.     $translations = 'off';
  8.   }
  9.   return $translations;
  10. }
[FQ\I-GNC  
8n4V cu  
替换 Gravatar wHsB,2H  
i[semo\E  
ZEbLL4n  
使用 V2EX 的 Gravatar 镜像来代替原来的,支持 HTTPS。 lu UYo  
  1. function get_ssl_avatar($avatar) {
  2.    $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://cdn.v2ex.co/gravatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
  3.    return $avatar;
  4. }
  5. add_filter('get_avatar', 'get_ssl_avatar');
|sgXh9%x<  
@kD8^,(oH  
强制jquery库文件底部载入 f3WSa&eF  
+yt6(7V*  
N~,_`=yRx  
将 JS 放到最后加载,有利于提高网站加载效率
  1. //强制jquery库文件底部载入
  2. function ds_print_jquery_in_footer( &$scripts) {
  3.     if ( ! is_admin() )
  4.         $scripts->add_data( 'jquery', 'group', 1 );
  5. }
  6. add_action( 'wp_default_scripts', 'ds_print_jquery_in_footer' );
$M"0BZQ?y!  
Qu{c B^Ga*  
e&X>F"z2  
去除加载的css和js后面的版本号 u}H$-$jE  
CBD_a#K{  
p*;Qz  
去掉版本查询提高效率,看着也舒心 dGgP_ S  
qJ[@:&:  
  1. //去除加载的css和js后面的版本号
  2. /** Remove Query strings from Static Resources. */
  3. function _remove_script_version( $src ){
  4.     $parts = explode( '?', $src );
  5.     return $parts[0];
  6. }
  7. add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
  8. add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );
  9. add_filter( 'pre_option_link_manager_enabled', '__return_true' );
&:?e&  
g{pQ4jKF  
:X .,  
删除 WP 头不需要的代码 ]"x\=A  
JE%A|R<Jl  
W7G9Kx1Y  
这个去掉了,可以有效精简 WP 多余的nearing iH)Nk^   
  1. //删除 wp_head 中无关紧要的代码
  2. remove_action('wp_head', 'rsd_link');
  3. remove_action('wp_head', 'wlwmanifest_link');
  4. remove_action('wp_head', 'wp_generator');
  5. remove_action('wp_head', 'start_post_rel_link');
  6. remove_action('wp_head', 'index_rel_link');
  7. remove_action('wp_head', 'adjacent_posts_rel_link');
/3^P_\,>f  
ehO:')XF  
5A_4\YpDR  
禁用 Emoji 功能 ! gp}U#Yv  
IKf`[_,t]  
"xwM+AC  
WP 的 EMOJI 图片国内无法使用,直接禁用
  1. /* 禁用 Emoji 功能 */
  2. remove_action('admin_print_scripts',    'print_emoji_detection_script');
  3. remove_action('admin_print_styles', 'print_emoji_styles');
  4. #remove_action('wp_head',       'print_emoji_detection_script', 7);
  5. remove_action('wp_print_styles',    'print_emoji_styles');
  6. remove_action('embed_head',     'print_emoji_detection_script');
  7. remove_filter('the_content_feed',   'wp_staticize_emoji');
  8. remove_filter('comment_text_rss',   'wp_staticize_emoji');
  9. remove_filter('wp_mail',        'wp_staticize_emoji_for_email');
a20w,  
h$h]%y  
! sYf<  
屏蔽文章 Embed 功能 B/YcSEY;  
k0&lu B%  
P79R~m`  
多余功能,去掉 jE U'.RBN%  
ch,|1}bi  
tjb/[RQ  
  1. remove_action('rest_api_init', 'wp_oembed_register_route');
  2. remove_filter('rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4);
  3. remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10 );
  4. remove_filter('oembed_response_data',   'get_oembed_response_data_rich',  10, 4);
  5. remove_action('wp_head', 'wp_oembed_add_discovery_links');
  6. remove_action('wp_head', 'wp_oembed_add_host_js');
.Dv=p B,u  
$j`<SxJ>  
关闭 XML-RPC 功能 29O]S8  
zHx mA  
Wu{&;$  
  1. // 关闭 XML-RPC 功能
  2. add_filter('xmlrpc_enabled', '__return_false');
(UW6F4:$  
W]LQ &f  
屏蔽 REST API }GRMZh_8  
iB{xvyR  
  1. // 屏蔽 REST API
  2. add_filter('rest_enabled', '__return_false');
  3. add_filter('rest_jsonp_enabled', '__return_false');
a @SUi~+3  
+2O=s<fp  
移除头部 wp-json 标签和 HTTP header 中的 link p+D=}O  
OWV/kz5'H  
FU]4oKx  
  1. //移除头部 wp-json 标签和 HTTP header 中的 link
  2. remove_action('wp_head', 'rest_output_link_wp_head', 10 );
  3. remove_action('template_redirect', 'rest_output_link_header', 11 );
T 'i~_R6  
|LFUzq>j  
屏蔽若干无用功能 6~:+:;  
eYDgEM  
  1. // Disable auto-embeds for WordPress >= v3.5
  2. remove_filter( 'the_content', array( $GLOBALS['wp_embed'], 'autoembed' ), 8 );
  3. add_filter('automatic_updater_disabled', '__return_true');  // 彻底关闭自动更新
  4. remove_action('init', 'wp_schedule_update_checks'); // 关闭更新检查定时作业
  5. wp_clear_scheduled_hook('wp_version_check');            // 移除已有的版本检查定时作业
  6. wp_clear_scheduled_hook('wp_update_plugins');       // 移除已有的插件更新定时作业
  7. wp_clear_scheduled_hook('wp_update_themes');            // 移除已有的主题更新定时作业
  8. wp_clear_scheduled_hook('wp_maybe_auto_update');        // 移除已有的自动更新定时作业
  9. remove_action( 'admin_init', '_maybe_update_core' );        // 移除后台内核更新检查
  10. remove_action( 'load-plugins.php', 'wp_update_plugins' );   // 移除后台插件更新检查
  11. remove_action( 'load-update.php', 'wp_update_plugins' );
  12. remove_action( 'load-update-core.php', 'wp_update_plugins' );
  13. remove_action( 'admin_init', '_maybe_update_plugins' );
  14. remove_action( 'load-themes.php', 'wp_update_themes' );     // 移除后台主题更新检查
  15. remove_action( 'load-update.php', 'wp_update_themes' );
  16. remove_action( 'load-update-core.php', 'wp_update_themes' );
  17. remove_action( 'admin_init', '_maybe_update_themes' );
D% @KRcp^b  
,Qo}J@e(  
级别: 新人
发帖
8
云币
10
只看该作者 沙发  发表于: 2017-09-15
Re让 WordPress 飞起来的几个 function
支持 ,顶上去
级别: 架构狮
发帖
1217
云币
1946
只看该作者 板凳  发表于: 2018-01-23
Re让 WordPress 飞起来的几个 function
支持 ,顶上去
级别: 新人
发帖
2
云币
2
只看该作者 地板  发表于: 2018-05-17
Re让 WordPress 飞起来的几个 function
请问用最新的WordPress4.9.5.会不会又冲突呢
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个