存档

文章标签 ‘wordpress’

wordpress非插件防垃圾评论方法

2009年12月22日 a18ccms 6 条评论

这个方法来自网上, 已经被转载多次了, 很多地方叫 "WordPress 代码添加算术验证码防止垃圾评论", 我已经无法找到原始出处. 我只是对它进行了一点小小的改进, 把它变成了 +-/* 四则运算. 方法也不是很复杂, 加入一个运算法则的变量就行了. 效果见下面的评论.
阅读全文...

分类: 编程 标签: ,

WordPress 防止冒充留言

2009年6月8日 a18ccms 没有评论

以下转载来自:MG12

WordPress 一直以来都有个问题, 如果博主设置评论不需要审核批准就能发表, 那么有可能被人冒名顶替管理员或其他注册用户进行留言. WordPress 是以 email 来识别留言者的, 也就是说, 只要有人知道管理员的邮箱, 那就可以冒充他留言. 虽说管理员可以随后删除这些评论, 但是万一管理员长期不在线或者有人恶意留言那还是挺麻烦的.

这个问题在我刚使用 WordPress 的时候 (WP 2.2) 就发现了, 但这应该不是 bug, 只能认为是设计不周. 后台有提供两种评论审核机制的, 一种是全部都要审核, 另一种是对审核过的不再需要审核. 但这对网站管理和用户体验来说都是极大的挑战, 所以大多数站长都不会打开审核功能, 就这样留下了隐患.

我在以前的主题中试过加入一些 JavaScript 简单的阻挡一下冒充行为, 但觉得这只能防君子, 形同虚设, 后来也就撤了. 但最近有位同志为了这个跑我的博客来搞测试, 把我给郁闷死了. 所以还是想办法解决了它吧. 其实处理方法很简单, 就是在提交评论的时候多加一个检验, 如果评论者用了管理员或者注册用户的 email 进行留言, 就跳转报错页面. 处理方法如下:

1. 到 WordPress 的根目录, 打开文件 wp-comments-post.php. (每次发表评论都要调用它, 就拿它开刀吧.)
2. 查找 if ( '' == $comment_content ), 在它之前追加以下代码. (一般在处理内容之前处理 email.)

if (!$user->ID) {
	$result_set = $wpdb->get_results("SELECT display_name, user_email FROM $wpdb->users WHERE display_name = '" . $comment_author . "' OR user_email = '" . $comment_author_email . "'");
	if ($result_set) {
		if ($result_set[0]->display_name == $comment_author) {
			wp_die( __('Error: you are not allowed to use the nickname that you entered.') );
		} else {
			wp_die( __('Error: you are not allowed to use the email that you entered.') );
		}
	}
}

我这样处理, 会对包括管理员在内的所有注册用户的 email 进行检测. 但如果你只是想禁止输入管理员或者作者等特殊群体的 email, 那么你需要在 SQL 中关联上 $wpdb->usermeta 这个表, 并对 meta_key = 'wp_capabilities' 的项进行筛选.

看到这, 你是不是还有个问题? 为什么不用 add_action('comment_form', 'email_validate'); 处理呢? 因为用这个的话, email_validate 方法只会在评论提交完成后才触发, 评论都已经发表成功了, 那么 email 的检测就失去意义了.

好吧! 相信你已经知道怎么干了, 我就不多说了. 如果你对此怀疑, 可以在这里用我的 email 测试一下.

分类: 编程 标签: , , ,

10个WordPress的.htaccess技巧

2009年4月29日 a18ccms 没有评论

对于Apache服务器,使用.htaccess文件可以进行很多相关网络服务访问的配置。而以下的10个技巧则专门针对WordPress所进行的设置,推荐大家参考使用:
1. 重定向WordPress的RSS Feed链接地址到Feedburner地址:
除了修改WP的模板文件来定制其输出的RSS Feed链接地址外,还可以使用.htaccess文件来进行设置(替换yourrssfeedlink为自己的Feedburner地址)。
阅读全文...

分类: 编程 标签: , ,

wordpress的Bug 禁止媒体自动播放

2009年4月20日 a18ccms 没有评论

WP文章中用播放器插入的媒体总是会自动播放
打开单个页面的时候还好,如果是一个文章列表页面中有很多就乱套了
可是WP编辑文章的时候在参数里取消 自动播放 是无效的
只要一保存参数就不见了
这两天自己摸索出了答案
WP编辑器给加出的参数是红色那段 例子如下

正确有效的方法是这样


我还是菜鸟这问题苦恼了好几天摸索了出来
希望对有同样烦恼的朋友能有所帮助

分类: 网摘 标签: , , ,

WordPress主题函数

2009年4月8日 a18ccms 4 条评论

(一)WordPress基本模板文件,一套完整的WordPress模板包括如下文件,但是只有index.php和style.css是不能缺少的:

  1. style.css : CSS(样式表)文件,不可缺少版权部分,真正CSS样式表可以放在其他文件;
  2. index.php : 主页模板,不可缺少;
  3. archive.php : Archive/Category模板,如果缺少,默认为index.php的显示;
  4. 404.php : Not Found 错误页模板,如果缺少,默认为index.php的显示;
  5. comments.php : 留言/回复模板,不可缺少;
  6. footer.php : Footer模板,可合并到index.php;
  7. header.php : Header模板,可合并到index.php;
  8. sidebar.php : 侧栏模板,可合并到index.php;
  9. page.php : 内容页(Page)模板,如果缺少,默认为index.php的显示;
  10. single.php : 内容页(Post)模板,如果缺少,默认为index.php的显示;
  11. searchform.php : 搜索表单模板,可合并到index.php;
  12. search.php : 搜索结果模板,如果缺少,默认为index.php的显示;

阅读全文...

分类: 编程 标签: , ,