xiuno 论坛常见问题之发帖成功后不会自动跳转
在搭建完成 Xiuno 论坛之后,不少站长会遇到这样的问题:用户发帖成功后,页面停留在提交页面,无法自动跳转到帖子详情页或论坛列表页。这种情况会严重影响用户体验,导致用户误以为发帖失败,甚至重复提交内容,增加服务器负担,同时也会降低论坛的用户留存率。
很多战长都不是开发出身,遇到此类问题完全不知道该如何解决。
本文将带大家了解问题的具体原因以及如何才能解决这个问题。
当然,如果你不关心具体原因,只需要解决方法,您可以选择直接跳转到 解决方法,查看问题的解决方案。
原因分析
排查代码后,发现发布主题成功之后,弹窗提示,之后是跳转的代码,但是那块代码被注释掉了,从这里看起来应该是论坛主题默认的动作,也有可能是你下载的主题不是原版主题,可能是其他人分享给你的,具体代码块如下:
文件位置:xiuno/plugin/主题目录/overwrite/view/htm/post.htm
$.xpost(jform.attr('action'), postdata, function(code, message) {
if(!selectedFid && isFirstFloor){
$.alert('请选择板块!');
jsubmit.button('reset');
return
}
if(code == 0) {
$.alert(message);
// jsubmit.button(message).delay(1000).location('<?php echo $location;?>');
} else if(xn.is_number(code)) {关键代码:// jsubmit.button(message).delay(1000).location(’’); 前面有个 // 表示代码注释了,不会生效
解决方法
你可以依次执行以下的步骤,如果那个步骤成功了,则后面的步骤忽略即可
步骤一:打开被注释的代码块
去掉 // jsubmit.button(message).delay(1000).location(’’); 前面的 //,结果为:
jsubmit.button(message).delay(1000).location('<?php echo $location;?>');进入后台管理,清理缓存,然后刷新发帖页面,重新进行发帖,如果有跳转到首页/版块列表页,说明成功了,后续步骤可忽略。
如果上面的步骤还是不行,接着操作下面的步骤
还是文件:xiuno/plugin/主题目录/overwrite/view/htm/post.htm
找到代码块:var jfid = jform.find(‘select[name=“fid”]’);
替换为以下代码:
const jfid = {
checked: function() {
const cid=jforumRadios.filter(':checked').val();
if (!cid ||cid===0){
return 1
}
return cid
}
};进入后台管理,清理缓存,然后刷新发帖页面,重新进行发帖,如果有跳转到首页/版块列表页,说明成功了.
如果还是不行,如果你懂代码开发的话,在发帖完成后打开浏览器的F12控制台查看是否有报错。如果你不懂技术开发,你可以将问题发布在评论区,可以一起帮忙排查。
总结
Xiuno论坛发帖成功后不自动跳转,核心问题在于安装的插件主题存在问题或者主题本身不支持跳转,可以通过修改 post.htm 的代码,实现发布完成后跳转到当前帖子所属的版块,注意,xiuno 论坛并不支持发布完成后跳转到帖子的详情,其实也不是不行,可以写插件实现,不过似乎不太能确保精度,有没有现成的插件呢?,如果有,大家可以发布在评论区共享
如果大家对 Xiuno 论坛发帖跳转问题的排查还有其他不清楚的地方,或者遇到了特殊的故障场景,欢迎大家在评论区交流~~~
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!
本文原文链接: https://fiveyoboy.com/articles/xiuno-err-publish-theme/
备用原文链接: https://blog.fiveyoboy.com/articles/xiuno-err-publish-theme/