知更鸟主题 begin-lts主题 登录用户无法评论解决

  • 6
  • 1,429 views
  • A+
所属分类:经验分享

问题

换了begin-lts主题以后一直有一个困扰,作为管理员用户登录后直接评论或者回复评论,会提示需要填写昵称和邮箱。

分析

然而对于已经登录的用户,由于已经在用户设置中关联了相关设置,不会显示重新填写邮箱和昵称的输入框。检查wordpress 相关设置,用户邮箱和显示昵称是正常的,这就很无奈了。

按理说,邮箱、昵称、网址应该说自动填入的啊,为什么会这样的呢(绝望脸)

只有扒代码了,我们来看主题下inc/comment-ajax.php

很显然这段代码是与登录用户自动填写相关的函数,先确认了$user->ID有用户ID

再用escape函数从数据库取相关的数据,那么这块功能是怎么出错的呢,查询函数相关问题,发现了一篇相关的文章,发现这个escape是个过气函数,我的wordpress 版本比较新,所以不能正常使用

升级到 WordPress 3.6 之后,发现在 debug log 中有很多以下的错误信息:

这个错误信息的意思是 WordPress 3.6 将 $wpdp 类的 escape 方法设置过将舍弃,建议使用 preprae 方法或者 esc_sql 方法取代。 deprecated 的意思是这个方法虽然这个版本可以使用,但是在以后将会不再更新,直至删除,所以我们最后将使用这个方法的插件做下修改。让自己博客以后升级不会出错。

经过一轮的排查,插件和主题都没有用到这个函数进行过滤。最后发现是 Multisites 的 sunrise.php 文件引起的问题。

但是由于 sunrise.php 文件比 esc_sql() 文件被定义之前被引用,所以我们无法使用 esc_sql() 的函数,而 $wpdb->prepare 在 sunrise.php 这行又无法使用。最后发现可以通过 $wpdb->_escape 方法来替换。

所以最终的修改方式是,将 wp-content/sunrise.php 文件中下面一行:

修改成:

 

修复

按学着这篇文章替换函数

功能测试正常,done

其他js重写要避开主题的三个ajax地址

这样避开ajaxjs的重写,发送评论时的地址就可以回到主域名上来了

weinxin
我的微信公众号
我的微信公众号扫一扫

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

目前评论:6   其中:访客  5   博主  1

    • avatar菜鸟博客:来自天朝的朋友 谷歌浏览器 Windows 10 0

      一直用知更鸟的begin主题,未听过lts版本!

        • avatar音速灰行的起子:来自天朝的朋友 火狐浏览器 Windows 10 Admin

          @菜鸟博客 就是鸟哥懒得生成版本号了打算学巨硬服务化 lts(Long Term Support)长周期支持的意思,之前5.2以后还没人释出免费的lts破解版,但是知更鸟网站里已经变为提供lts版了

        • avatar小鹿:来自天朝的朋友 谷歌浏览器 Windows 7 0

          老哥你用的主题也是破解的嘛?能否提供个链接

          • avatar飞扬:来自天朝的朋友 QQ浏览器 Windows 10 0

            测试你的评论系统!

            • avatar顶顶顶顶对的多多多多多:来自天朝的朋友 搜狗浏览器 Windows 7 0

              反倒是 趁风使柁

              • avatarconsole:India Opera浏览器 Windows 8 0

                I believe what you posted was very reasonable. However, consider this, suppose you were to write
                a killer title? I mean, I don’t wish to tell
                you how to run your blog, however suppose you added something that makes people desire more?
                I mean 知更鸟主题 begin-lts主题 登录用户无法评论解决–经验分享
                | 岂止博客 is a little vanilla. You might peek at Yahoo’s front page and watch how they create news titles
                to get people to open the links. You might try adding a video or
                a picture or two to grab people excited about what you’ve got
                to say. Just my opinion, it would make your posts a little livelier.