最近再使用WordpressToTypecho
插件将wp
转成了typecho
后,想用Typecho
永久链接的功能复刻下Wordpress
那种带?
参数的固定链接,如?p=123
这样的格式,但测试发下改完后点文章还是分类啥的都还是在首页,也就是说这种带有?
的链接格式直接就是不支持。那么对于Wordpress
转投Typecho
的用户来说,用这种格式转投Typecho
就等于所有文章链接都换了,收录啥的直接受影响,那么有没有什么办法呢?
于是乎打开Github
开始反馈,最终在sy-records
大佬的帮助下找到了解决办法。
在typecho/var/Typecho/Request.php
文件337行左右找到如下代码:
if ($pos = strpos($requestUri, '?')) {
$requestUri = substr($requestUri, 0, $pos);
}
然后将其改为
if (!strpos($requestUri, '?p=')&&!strpos($requestUri, '?cat=')&&!strpos($requestUri, '?page_id=')) {
if ($pos = strpos($requestUri, '?')) {
$requestUri = substr($requestUri, 0, $pos);
}
}
其实就是针对自己的这三种?p=
、?cat=
、?page_id=
参数屏蔽了typecho
那个过滤就行了,当然如果你得参数如果和typecho
本身用到的参数重叠的话这样改可能有些问题(大多情况不会哈)。
下图是对应的永久链接设置
帅哥,wordpress有个钩子wp_insert_post_data,通过这玩意可以在保存文章时修改文章的一些信息,例如文章别名,来达到自动生成自定义文章别名的效果。typecho文档里没翻到,你知道是哪个函数吗 感谢?