首页后端开发JAVATypecho不修改源码不关闭反垃圾保护兼容pjax

Typecho不修改源码不关闭反垃圾保护兼容pjax

时间2023-04-25 02:24:02发布访客分类JAVA浏览1397
导读:众所周知,typecho使用pjax模板会导致评论失败。解决方法一是修改程序源码来兼容,二是在评论设置处关闭反垃圾保护来避免冲突。方法一呢,明显不适合小白用户,而且程序更新后可能会出现问题,或者需要再次修改。 方法二,虽然简单直接了很多,但...

众所周知,typecho使用pjax模板会导致评论失败。

解决方法一是修改程序源码来兼容,二是在评论设置处关闭反垃圾保护来避免冲突。

方法一呢,明显不适合小白用户,而且程序更新后可能会出现问题,或者需要再次修改。 方法二,虽然简单直接了很多,但是呢作为一个写主题的博主,总会被小白重复问道为啥评论不好使【明明主题安装说明里都强调说明了要关闭反垃圾保护,可是小白就是看不到!所以对于主题作者来说这样也不太好】

其实认真观察yodu模板更新记录的人应该发现了,自从yodu3.3.0版开始,我就不在提示关闭反垃圾保护来兼容模板了,因为想到了个有趣的方法

在functions.php添加

function themeInit($archive)
{
    
 Helper::options()->
    commentsAntiSpam = false;
 
}

这个方法其实与方法二一样,就是关闭反垃圾保护,只不过不用手动去关闭而是模板强制关闭反垃圾保护,并且评论设置处看起来还是开启反垃圾保护的样子,忽悠小白妥妥的!

其实themeInit还有些厉害的地方,例如:

function themeInit($archive)
{
    
 Helper::options()->
    commentsMaxNestingLevels = 999;
    //评论回复楼侧最高999层.这个正常设置最高只有7层
 Helper::options()->
    commentsAntiSpam = false;
    //评论关闭反垃圾保护
if ($archive->
is('author')) {
    
       $archive->
    parameter->
    pageSize = 50;
 // 作者页面每50篇文章分页一次
}
    
 if ($archive->
is('category','av')) {
    
 $archive->
    parameter->
    pageSize = 9;
 // 分类缩略名为av的分类列表每9篇文章分页一次
}
    
 $archive->
    content = a_class_replace($archive->
    content);
//文章内容,让a_class_replace函数处理
}

function a_class_replace($content)
{
    
  $content = preg_replace('##',
        '', $content);
//给文章每个超链接点击后新窗口打开,原理就是用正则替换文章内容
}
    

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

phptypecho程序源码

若转载请注明出处: Typecho不修改源码不关闭反垃圾保护兼容pjax
本文地址: https://pptw.com/jishu/7867.html
判断typecho的版本号 APlayer Typecho插件兼容instantclick.js

游客 回复需填写必要信息