2

我正在进行页面速度测试,并且有一个特定的域不断导致页面速度滞后。我认为这些外部文件没有任何用处,因此我想在用户访问网站时在页面加载期间省略它们。

我发现这个 url 非常接近我正在寻找的内容,但我认为不需要创建 2 行代码。阻止 WordPress 中的特定外部调用?

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

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

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

谢谢您的帮助!

4

1 回答 1

1

没有比您已经拥有的使用 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
于 2020-06-22T15:27:38.280 回答