wordpress3.7 改造成适合国人的博客程序---修改PHP源代码
wordpress3.5以上已经达到了不用插件不适合用的臃肿的PHP博客程序了。与此同时,百度又出插件讨好wordpress,加之国内的博客程序经营不下去了,一个接一个的关门了。而国内的PHP开源程序各自为政,都觉得自已很牛X,模板又是一套标签写法,如DZ,DEDE,PHPCMS,ECMS等等各不相同,提高了外人开发模板的门槛,加之本身的官方免费模板不多。程序员到30岁很难继续程序工作,于是玩转各个CMS的人越来越少。汗,不说了,先暂时用WP吧,改下,使之成为能适合国人的程序吧。
为什么要花大力气修改wordpress呢?想必你也知道,插件越多,运行速度越慢。
现在的wordpress已经成为No Plugins No WordPress!
而且发现WP是面向代码,不像国产程序面向用户(虽然有漏洞,虽然有后门,但毕竟适合国人习惯呐)。它们的出发点不同。用WP的人多,可能是因为WP出现较早,且佣有海量的模板和插件,使用方便。但真心笨重呀。能不用插件搞定的坚决不用插件。
1、禁止HTML评论
/wp-includes/kses.php文件, 找到 $allowedposttags 将要屏蔽的标签注释掉或者删掉。例如:a标签对应的就是a数组:
a' => array( 'href' => true, 'rel' => true, 'rev' => true, 'name' => true, 'target' => true, ),
删掉或者注释掉,评论中就不会出现链接了。
2、删除评论表单里带有的<a>等这类的标签提示:
/wp-includes/comment-template.php文件,函数comment_form约1978行'comment_notes_after' 这句,注释掉或者删掉。
经过上面两步,WP评论已经无法发超链接了。
3、并不是每个人都会把文章摘要填写,所以需要截取
if(!is_single()) { the_excerpt(); } else { the_content(__('(more…)')); }
4、防止垃圾评论(/wp-comments-post.php约92行):用正则去掉纯英文、日文、俄文等非中文语言
PS:似乎我测试的无效,不知道为啥网上疯狂的乱转载。还是用插件吧,简单些。
$pattern = '/[一-龥]/u'; if(!preg_match($pattern, $comment_content)) { wp_die( "You should type some Chinese word (like \"你好\") in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!" ); } // If the user is logged in
其它语言扩展:
//禁止全英文和日文评论 $pattern = '/[一-龥]/u'; $pattern = '/[一-龥]/u'; $jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u'; if(!preg_match($pattern, $incoming_comment['comment_content'])) { wp_die( "写点汉字吧,博主外语很捉急! Please write some chinese words!" ); } if(preg_match($jpattern, $incoming_comment['comment_content'])){ wp_die( "日文滚粗!Japanese Get out!日本語出て行け!" ); } //禁止真主阿拉留言(阿拉伯语,部分) $arattern ='/[؟-ض]+|[ط-ل]+|[م-م]+/u'; if(preg_match($arattern, $incoming_comment['comment_content'])){ wp_die( "不要用阿拉伯语!Please do not use Arabic!!من فضلك لا تستخدم اللغة العربية" ); } //禁止朝鲜半岛幸福人民留言(朝鲜语/韩语) $krattern ='/[갂-줎]+|[줐-쥯]+|[쥱-짛]+|[짞-쪧]+|[쪨-쬊]+|[쬋-쭬]+|[쵡-힝]+/u'; if(preg_match($krattern, $incoming_comment['comment_content'])){ wp_die( "不要用韩语/朝鲜语思密达!Please do not use Korean!하시기 바랍니다 한국 / 한국어 사용하지 마십시오!" ); } //禁止人妖部落留言(泰语) $thattern ='/[ก-๛]+/u'; if(preg_match($thattern, $incoming_comment['comment_content'])){ wp_die( "人妖你好,人妖再见!Please do not use Thai!กรุณาอย่าใช้ภาษาไทย!" ); } //禁止北方野蛮人留言(俄语) $ruattern ='/[А-я]+/u'; if(preg_match($ruattern, $incoming_comment['comment_content'])){ wp_die( "北方野人讲的话我们不欢迎!Russians, get away!Savage выйти из Русского Севера!" ); } // If the user is logged in
5、前台“功能”去掉wordpress.org链接
/wp-includes/default-widgets.php约318行到<?php wp_meta();?>前面这一段。
6、让wordpress佣有友情链接
在“外观”-“编辑”-"functions.php"里最后面加上:
//友情链接 add_filter('pre_option_link_manager_enabled','__return_true');
后,左侧菜单栏会显示出“链接”。
注:必须在“链接”里添加“分类目录”:友情链接,在前台才会显示友情链接字样,否则还是会显示“链接”
//首页调用方法: <?php wp_reset_query(); if ( is_home()) { ?> <?php wp_list_bookmarks(); ?> <?php } ?> //只在首页显示友情链接
7、禁止wordpress触目惊心的版本提示和自动更新
- /wp-config.php里加入:
//禁止自动更新
define('WP_AUTO_UPDATE_CORE',false);
define('AUTOMATIC_UPDATER_DISABLED', true );
- /wp-admin/includes/update.php约219行:注释掉,如下
//add_action( 'admin_notices', 'update_nag', 3 );
//add_action( 'network_admin_notices', 'update_nag', 3 );
- /wp-includes/class-wp-admin-bar.php约488行:注释掉,如下
//add_action( 'admin_bar_menu', 'wp_admin_bar_updates_menu', 40 );
- /wp-admin/menu.php约43行:注释掉,如下:
//$submenu[ 'index.php' ][10] = array( sprintf( __('Updates %s'), "<span class='update-plugins count-{$update_data['counts']['total']}' title='{$update_data['title']}'><span class='update-count'>" . number_format_i18n($update_data['counts']['total']) . "</span></span>" ), $cap, 'update-core.php');
- /wp-admin/admin-footer.php约49行:注释掉,如下:
//echo apply_filters( 'update_footer', '' );
至此,后台不会再有版本更新的提示。后台速度也会快一点点。为啥官方不用ajax去检查版本的升级呢,非要用PHP去请求,造成阻塞。是官方不懂ajax技术还是高手都走了。
8、上传中文文件名乱码
暂时不要有这个想法了,WP是一个烂东西。
9、添加文章时,后台的顶部导航条,真是烦人,鼠标一移上去,就出现下拉菜单。不爽,直接你。
wordpress\wp-includes\class-wp-admin-bar.php
约485行处,注释下面:
//add_action( 'admin_bar_menu', 'wp_admin_bar_wp_menu', 10 );
//add_action( 'admin_bar_menu', 'wp_admin_bar_my_sites_menu', 20 );
//add_action( 'admin_bar_menu', 'wp_admin_bar_site_menu', 30 );
//add_action( 'admin_bar_menu', 'wp_admin_bar_updates_menu', 40 );
//add_action( 'admin_bar_menu', 'wp_admin_bar_new_content_menu', 70 );
现在OK了,后台又会更简洁一点。用着这个WP,感觉真是折腾呀。