在进一步了解了默认perma结构以及如何修改它之后,我偶然发现了这个钩子rewrite_rules_array
. 这个钩子允许您过滤重写规则数组,WordPress中的URL重写规则数组有助于确定要加载的内容类型。
这是禁用将路径识别为附件的默认行为的好地方。这就是如何摆脱附件的所有重写规则,从而消除将路径识别为附件的所有行为。
add_filter(\'rewrite_rules_array\', function($rules) {
foreach ($rules as $rule => $url) {
if (strpos($url, \'attachment\') !== false) {
unset($rules[$rule]);
}
}
return $rules;
});
我不确定所有其他规则,我肯定想检查一下。例如:
"(.?.+?)(?:/([0-9]+))?/?$" => "index.php?pagename=$matches[1]&page=$matches[2]"
"([^/]+)(?:/([0-9]+))?/?$" => "index.php?name=$matches[1]&page=$matches[2]"
将帮助您识别页面,了解您是否只想使用页面非常有用。但请记住,如果只使用这些键/值重写数组,则还会重写(删除)新规则,例如自定义帖子类型的规则。
NOTE: 只能在WordPress后端的Settings>Permalinks页面上调试此过滤器。