目前我正在开发一个基于Angular 5的主题。Angular将静态资源导出到子文件夹中assets
. 我的开发wordpress安装位于localhost/wordpress
. 使用主题时,它会尝试从此url访问主题localhost/wordpress/assets
. 此操作失败,因为资产文件夹位于此处:localhost/wordpress/wp-content/themes/gruppe-adler/dist/assets/
哪里gruppe-adler
是主题的名称。
我的方法是在主题的functions.php
将所有请求重定向到正确的文件夹。
这是我用于此目的的代码
function assets_init($rules) {
$assetsRule = array(\'^assets/([^/]+)/?$\' => \'wp-content/themes/gruppe-adler/dist/assets/$matches[1]\');
return array_merge($assetsRule, $rules);
}
add_filter(\'page_rewrite_rules\', \'assets_init\');
出于测试目的,我对路径进行了硬编码,因为我找不到只返回主题文件夹相对url的函数。然而,这不起作用。我使用重写分析器插件检查它是否正在注册。它已注册,但给出了错误
This query variable is not public and will not be saved
.
这很混乱,因为我的重写规则中没有涉及查询变量。此外,末端的双点也很奇怪。
我的主要目标是实现对该资产的重定向,这意味着重定向到文件系统上的文件。这与查询参数或某些重定向到索引无关。php。我错过了什么?
最合适的回答,由SO网友:Mark Kaplun 整理而成
wordpress的“重写规则”有一个可怕的名字,与人们所期望的名字不符。这些不是重写或重定向的规则,也不是使用htaccess可以做的任何其他事情,而是用于将URL“重写”到相关WP_Query
参数。因此,如果您有一个重写规则,但该规则最终没有WP\\u查询参数,那么无论您尝试做什么,您都使用了错误的工具。
要深入了解您正在尝试做的事情。。。。不要这样做。这不是由插件或主题作者来决定URL的外观。失败点的简单示例-没有mod\\u重写的站点,因此根本没有“漂亮的url”处理。您需要了解如何根据特定设置正确配置角度。