小朋友放假,每天都是各种玩,没啥好写的,于是想着折腾了下网站。 先说点题外话吧,下午进入网站后台查看代码时发现被植入了恶意代码,原主题是没有问题的,可能是不小心安装其它主题感染上的,于是把其它所有主题删除了,同时把恶意代码清除了。没多久主机就被DDoS攻击导致安全平台黑洞网站不能正常访问了。 没想到我这个小站也有人盯上,对于我们这种小白,也不能显示出你们多大的本事,所以拜托各位大神去其它地方吧。
尊敬的用户,您好! 很抱歉的通知您,经过安全系统检测您的主机目前遭到攻击,攻击规模为连接数:957,影响了同机房其它服务器的正常运行,万网为了降低因攻击给您服务器及同机房用户造成的安全风险,对您的主机进行了关停处理。如果攻击行为停止,4小时后网站会自动开通。 —阿里云
1. 网站背景
所用主题只能设置背景色,不能设置背景图片,看着有点单调,想放张照片做背景,如果改css又太麻烦,于是想着直接从后台下手。最后发现一个简单而又直接的方法: 首先招唤神龙—在functions.php文件中加上下列代码:
代码语言:javascript复制add_theme_support('custom-background');
此时刷新页面会在“外观”列表下看到“背景”项了,证明可以设置背景了。 但本主题由于自带有设置背景色功能,所以按上面设置后背景不显示的,找到对应的背景色定义项并删除,然后再加上body class函数就ok啦:
代码语言:javascript复制<body <?php body_class();?>>
当然有的主题自带有,根据需要修改吧。
2. 项目多色背景框
文章结尾和侧栏的标签tags默认背景为灰色,单调而且不易识别,于是想着换个多彩的,网上介绍的方法很多,有些太复杂,最后发现一种非常简单的方法就是使用nth-child()选择器:
代码语言:javascript复制.tags div:nth-child(5n 1)
{
background:#ff0000;
}
.tags div:nth-child(5n 2)
{
background:#ffbb00;
}
根据实际需要修改背景色和数值,效果可以看看我的标签和友情链接页面吧。 这个功能非常适用,秒杀其它需要用JS才可以实现的方法。
3. 主页设置
设置了一下主页面和文章页面。效果参照“首页”及记事本下“所有文章”页面(原首页)。
4. 页面管理
完善了关于页面 / 美化了友情链接页面 / 增加了视频VIP解析页面和留言本。 调整了顶部导航栏的高度,使之更协调。 同时优化了各个页面导航下面的标题及副标题使之更准确,而不是像之前的统一是网站标题及描述了。
5. 二维码
主题原本是需要上传一个二维码图片,所有页面扫描打开都是同一个页面。 改用API使每个页面打开都有对应的二维码,扫描即可打开对应的页面。
代码语言:javascript复制<img src="http://api.qrserver.com/v1/create-qr-code/?size=150x150&data=<?php the_permalink(); ?>">
6. 最新评论
改进了原主题侧栏最新评论的显示内容及样式。
7. “上一篇”和“下一篇”
修改了原主题“上一篇”和“下一篇”针对同类别的显示方式,改为针对全站文章。 同时修改了显示样式。
打开 single.php, 找到下面代码,去掉括号中的“true”即可。
代码语言:javascript复制get_previous_post(TRUE)
get_next_post(TRUE)
8. 水印
文章页面增加了水印样式(参照Volcano主题)。
9. 版本
使用WordPress的博主都有一个普遍的意识,就是为了安全而移除WordPress的版本号,以免不良用心的人利用旧版本的漏洞对网站进行攻击。
代码语言:javascript复制/**
* 移除 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中加入下列代码:
代码语言:javascript复制// 去掉链接中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] = '�tegory%';
} else {
$wp_rewrite -> extra_permastructs['category']['struct'] = '�tegory%';
}
}
// 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. 禁止全英文评论
如果不加验证码,每天会收到非常多的垃圾评论。
代码语言:javascript复制/* 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样式比较多,就不贴出来了。
未完,待续。。。。。。