WordPress 毕竟是歪果仁开发的系统放到中国来会有一些水土不服,因为有广泛的使用到一些境外网站服务以及一些不必要的功能导致 WP 网站变慢,这里就将介绍如何通过 function.php 来精简 WP。

functions.php 是 WordPress 预留的功能函数文件,专门用于添加各种自定义函数代码。现在的WordPress主题的功能越来越强大了,一般都自带了 functions.php 这个文件(通常在主题根目录)。

WordPress 加速的一个要点就是能不用插件就不要用插件,插件越多网站越慢 。

例如,我的主题目录是:/data/wwwroot/www.wanvi.net/wp-content/themes/begin/,那么在该目录下就存在 functions.php 文件,使用代码编辑器修改它。

function精简优化代码

首先,我们将那些被墙的内容去掉,打不开会拖慢速度。下面是我从各网站搜罗来的 WP 精简 function 内容,大家选择性使用,尽量一个一个的添加,因为有些主题和插件可能会依赖到某些函数。

禁用谷歌字体

如果使用了 WP 默认的主题那么需要通过插件解决: Remove Open Sans font Link from WP core

如果是其他主题,添加:

  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. }

替换 Gravatar

使用 V2EX 的 Gravatar 镜像来代替原来的,支持 HTTPS。

  1. /**
  2. * WordPress 替换Gravatar头像库
  3. */
  4. function get_ssl_avatar($avatar) {
  5. $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);
  6. return $avatar;
  7. }
  8. add_filter(‘get_avatar’, ‘get_ssl_avatar’);

强制jquery库文件底部载入

将 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’ );

去除加载的css和js后面的版本号

去掉版本查询提高效率,看着也舒心

  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’ );

删除 WP 头不需要的代码

这个去掉了,可以有效精简 WP 多余的nearing

  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’);

禁用 Emoji 功能

WP 的 EMOJI 图片国内无法使用,直接禁用

  1. /* 禁用 Emoji 功能 */
  2. remove_action(‘admin_print_scripts’, ‘print_emoji_detection_script’);
  3. remove_action(‘admin_print_styles’, ‘print_emoji_styles’);
  4.  
  5. #remove_action(‘wp_head’, ‘print_emoji_detection_script’, 7);
  6. remove_action(‘wp_print_styles’, ‘print_emoji_styles’);
  7.  
  8. remove_action(’embed_head’, ‘print_emoji_detection_script’);
  9.  
  10. remove_filter(‘the_content_feed’, ‘wp_staticize_emoji’);
  11. remove_filter(‘comment_text_rss’, ‘wp_staticize_emoji’);
  12. remove_filter(‘wp_mail’, ‘wp_staticize_emoji_for_email’);

屏蔽文章 Embed 功能

多余功能,去掉

  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.  
  4. remove_filter(‘oembed_dataparse’, ‘wp_filter_oembed_result’, 10 );
  5. remove_filter(‘oembed_response_data’, ‘get_oembed_response_data_rich’, 10, 4);
  6.  
  7. remove_action(‘wp_head’, ‘wp_oembed_add_discovery_links’);
  8. remove_action(‘wp_head’, ‘wp_oembed_add_host_js’);

关闭 XML-RPC 功能

  1. // 关闭 XML-RPC 功能
  2. add_filter(‘xmlrpc_enabled’, ‘__return_false’);

屏蔽 REST API

  1. // 屏蔽 REST API
  2. add_filter(‘rest_enabled’, ‘__return_false’);
  3. add_filter(‘rest_jsonp_enabled’, ‘__return_false’);

移除头部 wp-json 标签和 HTTP header 中的 link

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

屏蔽若干无用功能

  1. // Disable auto-embeds for WordPress >= v3.5
  2. remove_filter( ‘the_content’, array( $GLOBALS[‘wp_embed’], ‘autoembed’ ), 8 );
  3.  
  4. add_filter(‘automatic_updater_disabled’, ‘__return_true’); // 彻底关闭自动更新
  5.  
  6. remove_action(‘init’, ‘wp_schedule_update_checks’); // 关闭更新检查定时作业
  7. wp_clear_scheduled_hook(‘wp_version_check’); // 移除已有的版本检查定时作业
  8. wp_clear_scheduled_hook(‘wp_update_plugins’); // 移除已有的插件更新定时作业
  9. wp_clear_scheduled_hook(‘wp_update_themes’); // 移除已有的主题更新定时作业
  10. wp_clear_scheduled_hook(‘wp_maybe_auto_update’); // 移除已有的自动更新定时作业
  11.  
  12. remove_action( ‘admin_init’, ‘_maybe_update_core’ ); // 移除后台内核更新检查
  13.  
  14. remove_action( ‘load-plugins.php’, ‘wp_update_plugins’ ); // 移除后台插件更新检查
  15. remove_action( ‘load-update.php’, ‘wp_update_plugins’ );
  16. remove_action( ‘load-update-core.php’, ‘wp_update_plugins’ );
  17. remove_action( ‘admin_init’, ‘_maybe_update_plugins’ );
  18.  
  19. remove_action( ‘load-themes.php’, ‘wp_update_themes’ ); // 移除后台主题更新检查
  20. remove_action( ‘load-update.php’, ‘wp_update_themes’ );
  21. remove_action( ‘load-update-core.php’, ‘wp_update_themes’ );
  22. remove_action( ‘admin_init’, ‘_maybe_update_themes’ );

总结

上面的代码可以极大程度上精简wordpress,请根据自己的需求进行使用。

夜河资源网提供的所有内容仅供学习与交流。通过使用本站内容随之而来的风险以及法律责任与本站无关,所承担的法律责任由使用者承担。
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!