我们的公司博客安装在/blog
. 我们的permalink结构是/%postname%/
所以帖子现在看起来像https://www.domain.com/blog/post
我们被要求发布一系列指南,这些指南必须安装在/buying-guides/
e、 g。https://www.domain.com/buying-guides/kittens
i、 e.在WordPress文件夹之外。
我认为答案是简单地创建一个名为“购买指南”的页面,然后在儿童时期为每个指南创建一个页面。然后,我们会得到如下URLhttps://www.domain.com/blog/buying-guides/kittens. 然后我创建了一个.htaccess
根文件夹中的规则
RewriteRule ^buying-guides/(.+)$ /blog/$1 [L,NC]
而且它似乎工作得很好!直到我意识到这一点,WordPress显然没有意识到重写。例如,我们使用
the_permalink()
函数在我们的页面标题中生成链接,现在显然生成了错误的链接(虽然它仍然可以工作,但我们不希望客户看到任何关于
/blog/
浏览购买指南时。
以上问题有没有好的解决方案?也许在页面呈现之前,过滤器会自动更改所有URL/blog/buying-guides/
到/buying-guides/
?
任何帮助都将不胜感激!
最合适的回答,由SO网友:cybmeta 整理而成
您是否尝试使用the_permalink()
filter hook?
add_filter(\'the_permalink\', \'remove_blog\');
function remove_blog($url) {
//only affects the permalink of pages
if(is_page()){
return str_replace(\'blog/\', \'\', $url);
}
return $url;
}
结合中的当前重写规则。htaccess根目录。