多数情况下,主题或插件的静态文件(css、js、图片之类的),会保存在主题或插件目录下。这样很轻易的就暴露了我们使用的什么插件或主题。所以,我们想个办法把这个路径隐藏起来。下面来看下如何在 Nginx的伪静态规则中实现这一目的。
添加伪静态规则
if (!-e $request_filename) {
rewrite ^/assets/css/(.*)$ /wp-content/themes/theme-name/assets/css/$1 last;
rewrite ^/assets/js/(.*)$ /wp-content/themes/theme-name/assets/js/$1 last;
rewrite ^/assets/img/(.*)$ /wp-content/themes/theme-name/assets/img/$1 last;
rewrite ^/plugins/(.*)$ /wp-content/plugins/$1 last;
break;
}
在 Nginx伪静态规则中,添加上面的代码即可。注意替换其中的路径为你自己的。
修改主题或插件中调用静态资源的代码
把 get_template_directory_uri()
修改为 home_url()
,即可。如下示例:
//wp_enqueue_style( 'BootStrap', get_template_directory_uri() . '/assets/css/bootstrap.min.css', array(), '4.2.1' );
wp_enqueue_style( 'BootStrap', home_url() . '/assets/css/bootstrap.min.css', array(), '4.2.1' );
使用钩子一劳永逸
我们也可以使用WordPress提供的hook钩子来对 get_template_directory_uri()
之类的方法获取到的地址进行修改,但是要注意不要影响其他功能。简单的方法就是判断地址中是否包含指定字符。