移花接木实现inove主题的留言功能

注: 不要被文章标题骗到了,其实说的是怎样将inove主题里的留言代码整合到别的主题中,专门供像我这样的菜鸟借鉴 ,技术高手请直接无视.

毫不夸张的说,mg12的inove主题在整个wordpress圈子里已经”泛滥”了. 当然,这充分表明了大家对这款主题的肯定. 的确,如果你觉得自己没有过硬的技术,如果你在寻求一款简单精致的主题,集成了众多功能与特效的inove是再合适不过了.

inove主题里的留言处理部分具有良好的用户体验,是我所喜欢的. 为了将这些功能与效果集成到另外一个主题,我摸索了两天,总算在今天下午的时候捣鼓出来了. 嘿嘿,我耍的是”移花接木” .

1.准备工作

主要是指要有一定的技术准备,具体的可以见下表:

所需知识 本人水平(入门,初级,中级,高级)
CSS 初级
PHP 初级
JavaScript 入门
AJAX 入门
HTML DOM 入门
上面这个表格,一方面说明了本人的水平真的很烂(所以要摸索很长时间),另一方面说明了作为一名Web Developer所需具备的基本技能,这几乎已经成为了标配了(只要去招聘网站上看过应该就都了解的).
此外,还需要准备好的是另一个你想要实现inove那样留言功能的主题,当然,inove主题是少不了的啦(没了主角怎么行呢.)

2.实现过程

这个实现过程可以说很简单,但要是对inove主题内部各个文件的逻辑关系不熟悉,加上菜鸟的技术,那一切都会变得很复杂了,我就是在这种复杂的情况下开始了我漫长的摸索的.

首先,参考的第一个文章是mg12里面介绍的WordPress 评论的 @ 回复,其实,里面已经比较详细的给出了代码是如何实现的.研究过代码,也可以读懂,但实际上我是不知道要将这些代码放在什么地方. 尝试多次之后,我决定不理会这些代码来,而是用inove主题里的comments.php文件替换掉我要修改主题的文件. 当我满心欢喜的进行测试之后,却发现没有任何效果. 在这里第一次卡住了.

没办法, 只能硬着皮头继续回过头去看代码. 我采取的方法是很笨, 就是对比inove主题可以正常评论的页面跟被替换掉comments.php文件后的页面, 虽然费时费力,但功夫不负有心人,终于让我发现, 两个页面的不同之处在于wp_list_comments()这个函数上,wordpress2.7里,将评论显示的功能全部封装在这个函数里, 虽然带来了不少的便利, 但这也让喜欢自己定制评论样式的弟兄们不爽, 于是牛人er都喜欢按照自己的方式来控制comments, inove主题里正是如此的, 它使用了一个自己定制显示的函数, 具体是这样的:

wp_list_comments(‘type=comment&callback=custom_comments’);

它表示的是使用custom_comments()函数来显示comments. 但这个函数并没有集成在comments.php这个函数当中, 而是被集成到了function.php函数里,这样, 只是单纯的复制comments.php函数显然是不行的. 知道问题所在之后, 我便将inove里function.php文件的custom_comments()函数复制到我要修改的主题中. 我第二次满心欢喜的以为大功告成, 谁知道还是不行(大受打击 ).  在这里是第二次卡住了.

再次没辙, 这次是乖乖的看各个文件了, 总觉得是一切正常,没什么问题. 不过慢慢的我就发觉应该是没法加载comments.js这个文件, 这是为什么呢, 我明明就已经将这个文件放到主题中去了. 打开检查. 发现了很多奇怪的语句,如:

MGJS.$(authorID), 我是真的不知道这个是啥玩意, 网上也搜索不出是什么来的. 也不知道怎么地, 让我误打误撞的发现类似这样的语句:

window[‘MGJS_CMT’] = {};

我就在想着是不是表示什么全局变量之类的, 还是在mg12里找到答案, 原来表示的是命名空间. 这隐约的让我感觉到comments.js里的有些语句没法执行, 可能是因为没有找到对应的函数, 而这些函数是调用的, 我找啊找, 最后才发现inove主题里有个叫做base.js的文件, 看来, mg12是把一些比较经常用到的函数都放进这个文件中去了, 赶忙复制过去, 测试, OK,搞掂!!

这就是移花接木实现inove主题的留言功能了, 我把要修动的文件及其操作做成下面的表格以便更好的”移花接木”.

comments.php 1.将inove中的复制到新主题中
comments.js 2.操作同上
function.php 3.将文件中控制留言部分的功能复制进新主题的function.php中
base.js 4.操作同1跟2
heade.php 5.记得要在新主题的该文件中加入调用base.js的代码

对照着操作应该是没什么大问题的.

3.总结收获

虽然是移花接木完成的, 但总归是花了心思在这里, 也在这个过程当中慢慢的增进对各种知识的理解.

(1) 代码很简单, 但是当很多代码放在一起的时候就不简单了.

(2) 看代码首先应该尝试从逻辑结构开始, 然后逐步深入到细节, 一开始就扣细节, 很容易就钻牛角尖了.

(3) css,javascript,php三者的结合真的很强大.

《移花接木实现inove主题的留言功能》有1个想法

  1. 建意了解作者的思路,自己动手写代码,这样才能真正提高自己。我以前也跟你一样,到处找代码,慢慢产生了依赖。其实实现评论用php很容易,就是把评论内容加上文章ID存入数据库,简单说就是操作数据库,其他的特效就交给css和javascrist,祝博主进步!

发表评论

电子邮件地址不会被公开。 必填项已用*标注