WordPress基础教程

让 WordPress 网站飞起来的几个functions

发布时间:2019-04-11 9:44:57

本文作者:

最后更新时间为 2019年4月11日

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

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

内容

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

禁用谷歌字体

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

//WordPress 后台禁用Google Open Sans字体,加速网站
add_filter( 'gettext_with_context', 'wpdx_disable_open_sans', 888, 4 );
function wpdx_disable_open_sans( $translations, $text, $context, $domain ) {
  if ( 'Open Sans font: on or off' == $context && 'on' == $text ) {
    $translations = 'off';
  }
  return $translations;
}

替换 Gravatar

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

//使用 V2EX 的 Gravatar 镜像
function get_ssl_avatar($avatar) {
   $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);
   return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

强制jquery库文件底部载入

将 JS 放到最后加载,有利于提高网站加载效率

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

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

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

//去除加载的css和js后面的版本号
function _remove_script_version( $src ){
    $parts = explode( '?', $src );
    return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'pre_option_link_manager_enabled', '__return_true' );

删除 WP 头不需要的代码

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

//删除 wp_head 中无关紧要的代码
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'start_post_rel_link');
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'adjacent_posts_rel_link');

禁用 Emoji 功能

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

// 禁用 Emoji 功能 
remove_action('admin_print_scripts',    'print_emoji_detection_script');
remove_action('admin_print_styles', 'print_emoji_styles');
#remove_action('wp_head',       'print_emoji_detection_script', 7);
remove_action('wp_print_styles',    'print_emoji_styles');
remove_action('embed_head',     'print_emoji_detection_script');
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');

屏蔽文章 Embed 功能

多余功能,去掉

//屏蔽文章 Embed 功能
remove_action('rest_api_init', 'wp_oembed_register_route');
remove_filter('rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4);
remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10 );
remove_filter('oembed_response_data',   'get_oembed_response_data_rich',  10, 4);
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');

关闭 XML-RPC 功能

// 关闭 XML-RPC 功能 
 add_filter('xmlrpc_enabled', '__return_false');

屏蔽 REST API

// 屏蔽 REST API
add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');

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

//移除头部 wp-json 标签和 HTTP header 中的 link 
remove_action('wp_head', 'rest_output_link_wp_head', 10 );
remove_action('template_redirect', 'rest_output_link_header', 11 );

屏蔽若干无用功能

// Disable auto-embeds for WordPress >= v3.5
remove_filter( 'the_content', array( $GLOBALS['wp_embed'], 'autoembed' ), 8 );

add_filter('automatic_updater_disabled', '__return_true');  // 彻底关闭自动更新

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');            // 移除已有的主题更新定时作业
wp_clear_scheduled_hook('wp_maybe_auto_update');        // 移除已有的自动更新定时作业

remove_action( 'admin_init', '_maybe_update_core' );        // 移除后台内核更新检查

remove_action( 'load-plugins.php', 'wp_update_plugins' );   // 移除后台插件更新检查
remove_action( 'load-update.php', 'wp_update_plugins' );
remove_action( 'load-update-core.php', 'wp_update_plugins' );
remove_action( 'admin_init', '_maybe_update_plugins' );

remove_action( 'load-themes.php', 'wp_update_themes' );     // 移除后台主题更新检查
remove_action( 'load-update.php', 'wp_update_themes' );
remove_action( 'load-update-core.php', 'wp_update_themes' );
remove_action( 'admin_init', '_maybe_update_themes' );

小兽wordpress凭借多年的wordpress企业主题制作经验,坚持以“为用户而生的wordpress主题”为宗旨,累计为10万多家客户提供品质wordpress建站服务,得到了客户的一致好评。我们一直用心对待每一个客户,我们坚信:“善待客户,将会成为终身客户”。小兽wordpress能坚持多年,是因为我们一直诚信。我们明码标价(wordpress做网站需要多少钱),从不忽悠任何客户,我们的报价宗旨:“拒绝暴利,只保留合理的利润”。如果您有网站建设、网站改版、网站维护等方面的需求,请立即咨询右侧在线客服或拨打咨询热线:18907337671,我们会详细为你一一解答你心中的疑难。

相关文章

为什么选择小兽WordPress

哪怕不计成本的时间投入,也绝不辜负任何一个客户。
成就客户成就自我的同时,把这个世界变得再美好一点。

我们的故事

小兽WordPress是2011年开始接触互联网,在这期间用WordPress搭建了一个博客叫小兽WordPress,专门学习WordPress建站。

我们的使命

我们希望用WordPress这款优秀的建站程序帮助每个人搭建一个属于自己的网站,高效率低成本做好互联网营销。

我们的文化

我们专注于把客户的事情做好并且做对,这意味着我们在做决定时会考虑到结果,最重要的是,我们力求真实。

我们的未来

我们将在不久的未来成为国内最好的WordPress工作室,小兽WordPress希望和每一个客户成为朋友,一起见证这个美好未来。

为什么选择小兽WordPress

告诉我你是谁,为你量身定做建站方案

我们深知不同的人做网站的阶段不一样,有的是新手,有的是老手。
我们清楚不同的人做网站的目的不一样,有的是展示,有的是营销。

如何让线上业务更上一层楼

还没有WordPress网站

还没有WordPress网站

不管你从事什么行业,WordPress都会为你提供一个专业的主题模板。在WordPress市场上有成千上万的免费主题,适合很多中小企业。

查看所有模板
已经有WordPress网站

已经有WordPress网站

小兽WordPress诚邀你一起学习WordPress,愿与各方携手升级改善您的WordPress网站,一起交流网站加速,网站优化等问题。

马上交个朋友
微信联系
chat 扫码联系
模板建站
挑选模板
网站定制
免费诊断
咨询热线
咨询热线

189-0733-7671

返回顶部

Fatal error: Uncaught TypeError: implode(): Argument #2 ($array) must be of type ?array, string given in /www/wwwroot/www.seo628.com/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php:528 Stack trace: #0 /www/wwwroot/www.seo628.com/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php(528): implode() #1 /www/wwwroot/www.seo628.com/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php(314): MatthiasMullie\Minify\CSS->shortenColors() #2 /www/wwwroot/www.seo628.com/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/Minify.php(111): MatthiasMullie\Minify\CSS->execute() #3 /www/wwwroot/www.seo628.com/wp-content/plugins/wp-rocket/inc/classes/optimization/CSS/class-minify.php(175): MatthiasMullie\Minify\Minify->minify() #4 /www/wwwroot/www.seo628.com/wp-content/plugins/wp-rocket/inc/classes/optimization/CSS/class-minify.php(128): WP_Rocket\Optimization\CSS\Minify->minify() #5 /www/wwwroot/www.seo628.com/wp-content/plugins/wp-rocket/inc/classes/optimization/CSS/class-minify.php(66): WP_Rocket\Optimization\CSS\Minify->replace_url() #6 /www/wwwroot/www.seo628.com/wp-content/plugins/wp-rocket/inc/classes/subscriber/Optimization/class-abstract-minify-subscriber.php(85): WP_Rocket\Optimization\CSS\Minify->optimize() #7 /www/wwwroot/www.seo628.com/wp-content/plugins/wp-rocket/inc/classes/subscriber/Optimization/class-minify-css-subscriber.php(44): WP_Rocket\Subscriber\Optimization\Minify_Subscriber->optimize() #8 /www/wwwroot/www.seo628.com/wp-includes/class-wp-hook.php(324): WP_Rocket\Subscriber\Optimization\Minify_CSS_Subscriber->process() #9 /www/wwwroot/www.seo628.com/wp-includes/plugin.php(205): WP_Hook->apply_filters() #10 /www/wwwroot/www.seo628.com/wp-content/plugins/wp-rocket/inc/classes/Buffer/class-optimization.php(94): apply_filters() #11 [internal function]: WP_Rocket\Buffer\Optimization->maybe_process_buffer() #12 /www/wwwroot/www.seo628.com/wp-includes/functions.php(5420): ob_end_flush() #13 /www/wwwroot/www.seo628.com/wp-includes/class-wp-hook.php(324): wp_ob_end_flush_all() #14 /www/wwwroot/www.seo628.com/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #15 /www/wwwroot/www.seo628.com/wp-includes/plugin.php(517): WP_Hook->do_action() #16 /www/wwwroot/www.seo628.com/wp-includes/load.php(1270): do_action() #17 [internal function]: shutdown_action_hook() #18 {main} thrown in /www/wwwroot/www.seo628.com/wp-content/plugins/wp-rocket/vendor/matthiasmullie/minify/src/CSS.php on line 528