mg12在他的博客里教给我们如何在wordpress中添加@样式回复功能,说实话,看的不是很懂,原因是mg12主要是对整个的实现原理进行了说明,而没有涉及到具体如何操作。殊不知像我这样对javascript完全不懂的菜鸟,必须告诉我第一步干什么,第二步干什么直到最后一步才可以,要不简直是云里雾里。不过值得庆幸的是,通过我的一番努力加上乱蒙乱猜,没想到最后还搞成了,真是该庆祝一下!前些天花了几个小时,按照mg12的方法给博客添加上了回复功能,并进行了样式化,这里,我把如何操作的步骤详细的写一下,当作是对mg12那篇文章的补充,给像我这样的菜鸟提供一个可操作的说明。关于@回复功能如何实现的原理,可以查看mg12的文章。那么我们开始。
第一步
打开Notepad++ ,将如下代码拷贝粘贴,保存为link.js,放入wordpress主题包中的javascript文件夹。
/**
* @ 回复
* @param authorId 评论者 ID
* @param commentId 评论 ID
* @param commentBox 评论输入框 ID
*
function reply(authorId, commentId, commentBox) {
// 评论者名字
var author = document.getElementById(authorId).innerHTML;
// 拼接成 '@评论者名字' 链接
var insertStr = '<a href="#' + commentId + '">@' + author.replace(/\t|\n/g, "") + '</a> \n';
// 追加到评论输入框
appendReply(insertStr, commentBox);
}
第二步
将如下代码拷贝粘贴,保存为input.js,放入wordpress主题包中的javascript文件夹。
/**
* 追加到输入框
* @param insertStr 追加字符串
* @param commentBox 评论输入框 ID
*/
function appendReply(insertStr, commentBox) {
// 如果指定的输入框存在, 将它设为目标区域
if(document.getElementById(commentBox) && document.getElementById(commentBox).type == 'textarea') {
field = document.getElementById(commentBox);
// 否则提示不能追加, 并退出操作
} else {
alert("The comment box does not exist!");
return false;
}
// 如果一次评论中重复回复, 提示并退出操作
if (field.value.indexOf(insertStr) > -1) {
alert("You've already appended this reply!");
return false;
}
// 如果输入框内无内容 (忽略空格, 跳格和换行), 将输入框内容设置为需要追加的字符串
if (field.value.replace(/\s|\t|\n/g, "") == '') {
field.value = insertStr;
// 否则清除多余换行, 并将字符串追加到输入框中
} else {
field.value = field.value.replace(/[\n]*$/g, "") + '\n\n' + insertStr;
}
// 聚焦评论输入框
field.focus();
}
第三步
打开header.php文件,在</head>标签之前加入如下代码:
<script type="text/javascript" src="<?php bloginfo('template_url');
?>/javascript/link.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_url');
?>/javascript/input.js"></script>
第四步
下载我已经调整好的的comments.php文件,替换掉你的wordpress主题中的comments.php文件。
第五步
根据你的主题样式对回复按钮进行设计,并使用CSS进行样式化。为了表达对捐助过GreenGaint主题的热心人士的感谢,如果你对CSS不太懂的话,我也可以帮助你。
上一篇:如何创建你的favicon?
这篇文章有12个评论. 留下评论