前言
惊喜总在不经意间来临?前段时间刚刚总结了WordPress迁移遇到的问题及解决办法,费了九牛二虎之力似乎一切都走向正轨了,今天则又冒出点新花样,待发布的文章居然不能预览!这不都是常规功能吗?难道因为我迁移之后就不好使了,根据遇到的情况分析之后发现不是这样的,这个预览一直就不好使,已经过去5年了,也是有点醉了,好像到我手里就坏了一样,其实一直就不能用,5年前别人挖的坑我也要填,我就是一个填坑勇士。
问题表现
问题最直接的表现就是文章保存草稿后,点击预览按钮跳转的不是刚刚编辑的文章预览页面,而是已发布的文章列表,很明显是跳转的链接不对,从已发布的文章链接来看,这个链接格式肯定是编辑过,通过查找资料我发现可以通过 WordPress后台菜单中的 设置
-> 固定链接
来修改固定样式,查看后发现发布链接的样式已经从 https://008ct.top/?p=123
定义为 https://008ct.top/%category%/%year%/%post_id%/
也就是在链接中增加了分类和年份信息。
再看预览链接的样式为 https://008ct.top/?p=123&preview=true
和默认样式很相似,所以我就找了半天哪里能有修改预览样式的页面,转了一圈无果,后来发现后台的地址和前台地址设置不同,地址中多了一段 cms
,完整预览格式应该为 https://008ct.top/cms/?p=123&preview=true
,默认打开的地址肯定是不行的,需要修改预览链接样式,朝这个方向努力后发现可以通过钩子函数来自定义预览链接。
解决问题
我们可以使用下面这个过滤钩子preview_post_link来自定义预览链接,把下面的代码放到主题文件夹里的functions.php文件中,路径类似 /cms/wp-content/themes/xxxx/functions.php
1 | function aw_custom_preview_link() { |
其中 get_option('siteurl')
获取的是后台的地址,也就是 https://008ct.top/cms
这部分,如果想获取前台的地址可以使用 get_option('home')
,这些都是在WordPress后台 设置
-> 常规
页面里设置的,修改过后无需重启项目,直接访问待发布的文章,预览链接就可以使用啦。
总结
- WordPress的可定制性真的很强,最近接触后深有体会
- WordPress可通过
设置
->固定链接
来设置文章的访问地址 - WordPress可通过
设置
->常规
来设置前台和后台的访问地址 - WordPress可通过钩子preview_post_link来自定义预览链接
故善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷,是谓要妙
2024-10-23 20:03:53