禁止 WordPress 4.6 版本头部 dns-prefetch 加载的 s.w.org

如果你和一样把你的 wordpress 升级到 4.6 以后,你会发现页面源代码的头部会多出一行 <link rel=’dns-prefetch’ href=’//s.w.org’ />,wordpress 4.6 在头部添加 dns-prefetch,应该是为了从 s.w.org 预获取表情和头像,目的是提高网页加载速度 ,但 s.w.org 国内根本无法访问,预获取和提高速度什么的都是咸吃萝卜淡操心,没用处不说,反而可能会影响速度,对于像这么追求极致的人,第一反映肯定就是禁用删除这行代码咯。

废话不多说,上代码,wordpress 惯用办法就是把以下代码添加到主题的 functions.php 文件:

方法一

//禁止 wordpress 头部加载 s.w.org
add_filter( 'emoji_svg_url', '__return_false' );

这种方式只会移除 wordpress 头部加载 s.w.org 的这一条信息,如果你的 wordpress 还加载了其它的站外资源,wordpress 依然会添加的,比如使用了百度的自动推送功能,就会自动加载一条 dns-prefetch 信息。

如果逆向完全的取消 wordpress 这个自动添加 DNS 预获取的功能,就需要使用到下面这两种方法了。

方法二

//移除 wordpress 头部加载 DNS 预获取(dns-prefetch)
remove_action( 'wp_head', 'wp_resource_hints', 2 );

虽然方法二的代码毕竟简单暴力,但是可能也会存在不足,毕竟是直接使用 remove 这样的方式移除的,所以可能不是非常的完善,如果你追求极致,或许方法三更加适合。

方法三

//移除 wordpress 头部加载 DNS 预获取(dns-prefetch)
function remove_dns_prefetch( $hints, $relation_type ) {
    if ( 'dns-prefetch' === $relation_type ) {
        return array_diff( wp_dependencies_unique_hosts(), $hints );
    }
 
    return $hints;
}
add_filter( 'wp_resource_hints', 'remove_dns_prefetch', 10, 2 );

从基层的代码去移除 dns-prefetch 这个 rel 属性链接是更为妥当的,以免影响其它的函数及功能或者资源调用。

最后最后再啰嗦的给大家不厌其烦的补充一个禁止 wordpress 加载默认表情的代码:

// 移除 emoji 表情 script
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );

这两句主要就是禁止 wordpress 加载 emoji 表情的 js,如果是在 wordpress 4.6 版本以后,记得加上方法一中的代码移除 dns-prefetch。

本文链接:https://www.abcziyuan.com/remove-s-w-org.html

开通VIP会员
分享到: 生成海报
免责声明1. 本站所有资源来源于用户上传和网络,均不允许转载,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 如发现会员转载本站资源文章,本站有权封禁会员账号!
4. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
5. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
6. 如有链接无法下载、失效或广告,请联系管理员处理!
7. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
8. 如遇到加密压缩包,默认解压密码为"www.abcziyuan.com",如遇到无法解压的请联系管理员!
开通VIP会员
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活