小朋友放假,每天都是各种玩,没啥好写的,于是想着折腾了下网站。
先说点题外话吧,下午进入网站后台查看代码时发现被植入了恶意代码,原主题是没有问题的,可能是不小心安装其它主题感染上的,于是把其它所有主题删除了,同时把恶意代码清除了。没多久主机就被DDoS攻击导致安全平台黑洞网站不能正常访问了。
没想到我这个小站也有人盯上,对于我们这种小白,也不能显示出你们多大的本事,所以拜托各位大神去其它地方吧。
尊敬的用户,您好!
很抱歉的通知您,经过安全系统检测您的主机目前遭到攻击,攻击规模为连接数:957,影响了同机房其它服务器的正常运行,万网为了降低因攻击给您服务器及同机房用户造成的安全风险,对您的主机进行了关停处理。如果攻击行为停止,4小时后网站会自动开通。
—阿里云
1. 网站背景
所用主题只能设置背景色,不能设置背景图片,看着有点单调,想放张照片做背景,如果改css又太麻烦,于是想着直接从后台下手。最后发现一个简单而又直接的方法:
首先招唤神龙—在functions.php文件中加上下列代码:
add_theme_support('custom-background');
此时刷新页面会在“外观”列表下看到“背景”项了,证明可以设置背景了。
但本主题由于自带有设置背景色功能,所以按上面设置后背景不显示的,找到对应的背景色定义项并删除,然后再加上body class函数就ok啦:
<body <?php body_class();?>>
当然有的主题自带有,根据需要修改吧。
2. 项目多色背景框
文章结尾和侧栏的标签tags默认背景为灰色,单调而且不易识别,于是想着换个多彩的,网上介绍的方法很多,有些太复杂,最后发现一种非常简单的方法就是使用nth-child()选择器:
.tags div:nth-child(5n+1) { background:#ff0000; } .tags div:nth-child(5n+2) { background:#ffbb00; }
根据实际需要修改背景色和数值,效果可以看看我的标签和友情链接页面吧。
这个功能非常适用,秒杀其它需要用JS才可以实现的方法。
3. 主页设置
设置了一下主页面和文章页面。效果参照“首页”及记事本下“所有文章”页面(原首页)。
4. 页面管理
完善了关于页面 / 美化了友情链接页面 / 增加了视频VIP解析页面和留言本。
调整了顶部导航栏的高度,使之更协调。
同时优化了各个页面导航下面的标题及副标题使之更准确,而不是像之前的统一是网站标题及描述了。
5. 二维码
主题原本是需要上传一个二维码图片,所有页面扫描打开都是同一个页面。
改用API使每个页面打开都有对应的二维码,扫描即可打开对应的页面。
<img src="http://api.qrserver.com/v1/create-qr-code/?size=150x150&data=<?php the_permalink(); ?>">
6. 最新评论
改进了原主题侧栏最新评论的显示内容及样式。
7. “上一篇”和“下一篇”
修改了原主题“上一篇”和“下一篇”针对同类别的显示方式,改为针对全站文章。
同时修改了显示样式。
打开 single.php, 找到下面代码,去掉括号中的“true”即可。
get_previous_post(TRUE) get_next_post(TRUE)
8. 水印
文章页面增加了水印样式(参照Volcano主题)。
9. 版本
使用WordPress的博主都有一个普遍的意识,就是为了安全而移除WordPress的版本号,以免不良用心的人利用旧版本的漏洞对网站进行攻击。
/** * 移除 WordPress 加载的JS和CSS链接中的版本号 */ function wanghao_remove_cssjs_ver( $src ) { if( strpos( $src, 'ver=' ) ) $src = remove_query_arg( 'ver', $src ); return $src; } add_filter( 'style_loader_src', 'wanghao_remove_cssjs_ver', 999 ); add_filter( 'script_loader_src', 'wanghao_remove_cssjs_ver', 999 );
貌似去掉版本后如果修改主题刷新时可以更快见到效果。
10. 评论显示样式
评论样式改为常见的嵌套样式,感觉比原主题的缩进列表方式的用户体验更好。
11. 增加验证码 (后续会去掉这个功能)
每天收到很多垃圾评论,虽然后台已经拦截了,但有点强迫症的我又坐不住了。
试着改代码没成功,最后不得不安装插件来解决,后续再观察效果如何。
12. 搜索框
将搜索框从侧栏移到滚动区,更方便。
13. Canvas特效
顶部背景增加canvas特效。
14. 去掉分类目录url链接中Category
主题文件中Functions.php中加入下列代码:
// 去掉链接中category分类标志 add_action( 'load-themes.php', 'no_category_base_refresh_rules'); add_action('created_category', 'no_category_base_refresh_rules'); add_action('edited_category', 'no_category_base_refresh_rules'); add_action('delete_category', 'no_category_base_refresh_rules'); function no_category_base_refresh_rules() { global $wp_rewrite; $wp_rewrite -> flush_rules(); } // register_deactivation_hook(__FILE__, 'no_category_base_deactivate'); // function no_category_base_deactivate() { // remove_filter('category_rewrite_rules', 'no_category_base_rewrite_rules'); // // We don't want to insert our custom rules again // no_category_base_refresh_rules(); // } // Remove category base add_action('init', 'no_category_base_permastruct'); function no_category_base_permastruct() { global $wp_rewrite, $wp_version; if (version_compare($wp_version, '3.4', '<')) { // For pre-3.4 support $wp_rewrite -> extra_permastructs['category'][0] = '%category%'; } else { $wp_rewrite -> extra_permastructs['category']['struct'] = '%category%'; } } // Add our custom category rewrite rules add_filter('category_rewrite_rules', 'no_category_base_rewrite_rules'); function no_category_base_rewrite_rules($category_rewrite) { //var_dump($category_rewrite); // For Debugging $category_rewrite = array(); $categories = get_categories(array('hide_empty' => false)); foreach ($categories as $category) { $category_nicename = $category -> slug; if ($category -> parent == $category -> cat_ID)// recursive recursion $category -> parent = 0; elseif ($category -> parent != 0) $category_nicename = get_category_parents($category -> parent, false, '/', true) . $category_nicename; $category_rewrite['(' . $category_nicename . ')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$'] = 'index.php?category_name=$matches[1]&feed=$matches[2]'; $category_rewrite['(' . $category_nicename . ')/page/?([0-9]{1,})/?$'] = 'index.php?category_name=$matches[1]&paged=$matches[2]'; $category_rewrite['(' . $category_nicename . ')/?$'] = 'index.php?category_name=$matches[1]'; } // Redirect support from Old Category Base global $wp_rewrite; $old_category_base = get_option('category_base') ? get_option('category_base') : 'category'; $old_category_base = trim($old_category_base, '/'); $category_rewrite[$old_category_base . '/(.*)$'] = 'index.php?category_redirect=$matches[1]'; //var_dump($category_rewrite); // For Debugging return $category_rewrite; } // Add 'category_redirect' query variable add_filter('query_vars', 'no_category_base_query_vars'); function no_category_base_query_vars($public_query_vars) { $public_query_vars[] = 'category_redirect'; return $public_query_vars; } // Redirect if 'category_redirect' is set add_filter('request', 'no_category_base_request'); function no_category_base_request($query_vars) { //print_r($query_vars); // For Debugging if (isset($query_vars['category_redirect'])) { $catlink = trailingslashit(get_option('home')) . user_trailingslashit($query_vars['category_redirect'], 'category'); status_header(301); header("Location: $catlink"); exit(); } return $query_vars; } // no_category_base_refresh_rules();
不管安装插件或者用代码可能会出现404页面!
解决方法:登录后台→设置→固定链接设置页面,随意改一下固定链接格式,然后再改回自己正常用的符合网站伪静态规则的固定链接格式,可以解决这个bug,不行就反复多改几次。
15. 禁止全英文评论
如果不加验证码,每天会收到非常多的垃圾评论。
/* refused spam */ function refused_spam_comments( $comment_data ) { $pattern = '/[一-龥]/u'; if(!preg_match($pattern,$comment_data['comment_content'])) { wp_die('评论必须含中文!'); } return( $comment_data ); } add_filter('preprocess_comment','refused_spam_comments');
16. 卡片式内链
代码及CSS样式比较多,就不贴出来了。
未完,待续。。。。。。