没有比您已经拥有的使用 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