刚开始接触wordpress的时候,就想着什么时候可以自己制作主题,当然这期间也几次尝试,不过好像都是浅尝辄止,没有一头扎到底。
但是今天我终于可以骄傲的宣布,imwaco的第一个主题上线了!撒花庆祝,哈哈。
国庆开始搞起,最近工作生活都有许多事情,但整个过程都还算比较顺利。
有时间再好好总结下吧,得暂告一段落了,接下来希望花点时间来学习python。
刚开始接触wordpress的时候,就想着什么时候可以自己制作主题,当然这期间也几次尝试,不过好像都是浅尝辄止,没有一头扎到底。
但是今天我终于可以骄傲的宣布,imwaco的第一个主题上线了!撒花庆祝,哈哈。
国庆开始搞起,最近工作生活都有许多事情,但整个过程都还算比较顺利。
有时间再好好总结下吧,得暂告一段落了,接下来希望花点时间来学习python。
终于考完试,结束了学生时代的最后一次课程考试。考前RP小小的爆发力一下,押中一题,但我还是没怎么记住。
昨晚看西班牙到四点多……浪费了好多机会,真是无语了。趁着看球赛的空档,对主题j稍微做了小调整。没有详细的去测试下调整后的效果,特别是IE6跟IE7下的,非IE环境应该都是正常的。调整的地方如下:
注: 不要被文章标题骗到了,其实说的是怎样将inove主题里的留言代码整合到别的主题中,专门供像我这样的菜鸟借鉴 ,技术高手请直接无视.
毫不夸张的说,mg12的inove主题在整个wordpress圈子里已经”泛滥”了. 当然,这充分表明了大家对这款主题的肯定. 的确,如果你觉得自己没有过硬的技术,如果你在寻求一款简单精致的主题,集成了众多功能与特效的inove是再合适不过了.
inove主题里的留言处理部分具有良好的用户体验,是我所喜欢的. 为了将这些功能与效果集成到另外一个主题,我摸索了两天,总算在今天下午的时候捣鼓出来了. 嘿嘿,我耍的是”移花接木” .
主要是指要有一定的技术准备,具体的可以见下表:
所需知识 | 本人水平(入门,初级,中级,高级) |
CSS | 初级 |
PHP | 初级 |
JavaScript | 入门 |
AJAX | 入门 |
HTML DOM | 入门 |
这个实现过程可以说很简单,但要是对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的代码 |
对照着操作应该是没什么大问题的.
虽然是移花接木完成的, 但总归是花了心思在这里, 也在这个过程当中慢慢的增进对各种知识的理解.
(1) 代码很简单, 但是当很多代码放在一起的时候就不简单了.
(2) 看代码首先应该尝试从逻辑结构开始, 然后逐步深入到细节, 一开始就扣细节, 很容易就钻牛角尖了.
(3) css,javascript,php三者的结合真的很强大.