如何在使用 WP 加载页面期间阻止外部静态资源

How to Block External Static Resource During Page Load with WP

我正在进行页面速度测试,有一个特定的域一直导致页面速度延迟。我认为这些外部文件没有任何用处,所以我想在用户访问网站时在页面加载期间忽略它们。

我发现这个 url 与我正在寻找的非常接近,但我认为不需要创建 2 行代码。 block specific external calls in WordPress?

与其全部阻止它们然后将我想要允许的那些列入白名单,我只想阻止 1 个外部 url,我相信我应该只需要 1 行带有 WP 的代码。有人可以帮我指出正确的方向吗?

这就是我现在拥有的。 define('WP_HTTP_BLOCK_EXTERNAL', true);

第2行,白名单define('WP_ACCESSIBLE_HOSTS', 'site1.com, site2.com');

感谢您的帮助!

没有比使用 WP_HTTP_BLOCK_EXTERNAL 更短的方法(行)。

我能想到的唯一其他方法是覆盖 pre_http_request - https://developer.wordpress.org/reference/hooks/pre_http_request/ 处的文档 - 返回非假值,因此不请求外部 URL 响应(例如“短电路”):

add_filter('pre_http_request', function($request) {
    if( $request['url'] != 'https://www.site1.com' ) {
        return false;
    }
    return "my replacement content";
})

我首先想到的是您想阻止某些外部网站访问您可以通过 .htaccess 修改来访问您的 WordPress 网站。我也会留下那个答案(假设您使用的是 Apache Web 服务器):

# BEGIN Block sites
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} site1\.com [NC]
RewriteCond %{HTTP_REFERER} site2\.com [NC]
RewriteRule ^(.*)$ - [F]
</IfModule>
# END Block sites

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress