修复WordPress前后端分离时无法预览文章的问题

head

前言

惊喜总在不经意间来临?前段时间刚刚总结了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

function aw_custom_preview_link() {
    return get_option('siteurl') . "/?p=" . get_the_ID() . "?preview=true";
}
add_filter('preview_post_link', 'aw_custom_preview_link');

其中 get_option('siteurl') 获取的是后台的地址,也就是 https://008ct.top/cms 这部分,如果想获取前台的地址可以使用 get_option('home'),这些都是在WordPress后台 设置 -> 常规 页面里设置的,修改过后无需重启项目,直接访问待发布的文章,预览链接就可以使用啦。

总结

  • WordPress的可定制性真的很强,最近接触后深有体会
  • WordPress可通过设置 -> 固定链接来设置文章的访问地址
  • WordPress可通过设置 -> 常规 来设置前台和后台的访问地址
  • WordPress可通过钩子preview_post_link来自定义预览链接

==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

故善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷,是谓要妙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlbertS

常来“玩”啊~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值