QQ爹の博客 QQ爹の博客

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

in Typecho 文章转载请注明来源!

众所周知,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('#<a(.*?) href="([^"]*/)?(([^"/]*)\.[^"]*)"(.*?)>#',
        '<a$1 href="$2$3"$5 target="_blank">', $content);//给文章每个超链接点击后新窗口打开,原理就是用正则替换文章内容
}
jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

版权声明:本文基于《知识共享署名-相同方式共享 3.0 中国大陆许可协议》发布,转载请遵循本协议
文章链接:https://qqdie.com/archives/typecho-lese-pjax.html (转载时请注明本文出处及文章链接)

typechopjax
发表新评论
已有 29 条评论
  1. ihua
    ihuaAndroid M夸克浏览器
    回复

    看到标题的一瞬间觉得诡异,因为我也写过一个ajax 的typecho 板子,也遇到这个坑。
    虽说是伪命题,但确实人性化很多!

    1. Jrotty
      Jrotty本文作者Windows 10谷歌浏览器
      回复

      @ihua 不知道标题咋写,于是就用了个伪标题

      1. zern
        zernWindows 7谷歌浏览器
        回复

        @Jrotty 不知道说什么,那就2333吧

  2. 那他
    那他Windows 10谷歌浏览器
    回复

    确实是一个好方法。

    1. Jrotty
      Jrotty本文作者Windows 10谷歌浏览器
      回复

      @那他 能省下好多麻烦事233

  3. LiarOnce
    LiarOnceWindows 10谷歌浏览器
    回复

    可惜我看不到广告(万能的ABP

  4. Sakura
    SakuraLinuxIE浏览器
    回复

    膜拜巨佬!终于找到了评论回复数量限制解决办法..

    1. Jrotty
      Jrotty本文作者Windows 10谷歌浏览器
      回复

      @Sakura 哈哈,typecho好多东西都可以强行越过程序后台设置的233

      1. Sakura
        SakuraLinuxEdge浏览器
        回复

        @Jrotty 我之前是进数据库里改这个来着...

  5. 黑暗游侠
    黑暗游侠Windows 10谷歌浏览器
    回复

    奇怪,页面用不了滚轮。。

    1. Jrotty
      Jrotty本文作者Windows 10谷歌浏览器
      回复

      @黑暗游侠 额,可能是用的那个平滑滚动有问题233,但是我的谷歌浏览器却没这毛病啊

  6. 保罗
    保罗Windows 8.1谷歌浏览器
    回复

    仰望 PHP 大佬

PREVIOUS NEXT
雷姆
拉姆
音乐加载中...
0:00