大家都知道WordPress是php+mysql环境下的建站程序,那么在大数据的情况下程序运行的瓶颈就是数据查询。那么为了减小数据库的大小,最有效的方法就是删除冗余数据以及禁止WordPress自动保存文章草稿、文章修订等无用数据。仅需在当前WordPress主题的functions.php文件中加上以下代码即可禁用WordPress的自动保存功能。
1
2
3
4
5
6
7
|
//禁止wptexturize函数
remove_filter
(
'the_content'
,
'wptexturize'
)
;
remove_action
(
'pre_post_update'
,
'wp_save_post_revision'
)
;
add_action
(
'wp_print_scripts'
,
'disable_autosave'
)
;
function
disable_autosave
(
)
{
wp_deregister_script
(
'autosave'
)
;
}
|
禁用了自动保存和修订版本后,WordPress还是会产生一定的冗余数据。创建一个新php文件,粘贴以下代码执行:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<
?
php
//wordpress数据库优化脚本 by v7v3.com
$
hostname_blog
=
"localhost"
;
//设定数据库主机,同wp-config.php
$
database_blog
=
"wordpress"
;
//设定数据库名,同wp-config.php
$
username_blog
=
"root"
;
//设定数据库用户名,同wp-config.php
$
password_blog
=
""
;
//设定数据库密码,同wp-config.php
$
blog
=
mysql_pconnect
(
$
hostname_blog
,
$
username_blog
,
$
password_blog
)
or
trigger_error
(
mysql_error
(
)
,
E_USER_ERROR
)
;
mysql_select_db
(
$
database_blog
,
$
blog
)
;
mysql_query
(
'DELETE FROM wp_posts WHERE post_type = "revision"'
)
;
mysql_query
(
'DELETE FROM wp_postmeta WHERE meta_key = "_edit_lock"'
)
;
mysql_query
(
'DELETE FROM wp_postmeta WHERE meta_key = "_edit_last"'
)
;
mysql_query
(
'DELETE FROM wp_commentmeta WHERE meta_key LIKE "%trash%"'
)
;
mysql_query
(
'DELETE FROM wp_comments WHERE comment_approved = "trash"'
)
;
mysql_query
(
'DELETE FROM wp_options WHERE option_name REGEXP "_transient_"'
)
;
mysql_query
(
'DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_attached_file’'
)
;
mysql_query
(
'DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_attachment_metadata’'
)
;
mysql_query
(
"delete from wp_posts
where (post_status='auto-draft' or post_status='inherit')
and post_type='post'"
)
;
$
tablelist
=
mysql_query
(
"SHOW TABLES"
)
;
while
(
$
checklist
=
mysql_fetch_array
(
$
tablelist
)
)
{
$
optimization
=
mysql_query
(
"OPTIMIZE TABLE `$checklist[0]`"
)
;
}
echo
'Done'
;
//ps记得修改数据库前缀~
//使用时将脚本上传至网站任意目录后并且通过浏览器访问即可一键优化wordprsss数据库。
|
执行后将会批量删除WordPress产生的冗余文件,修改好相应数据库信息后上传至网站然后使用浏览器直接访问该脚本即可一键优化数据库,不过由于一次性执行多个sql查询,所以该脚本访问时响应速度可能会比较长,优化成功后会显示Done。
然后再屏蔽垃圾评论提交到数据库,这样数据库就优化的差不多了,代码依然来自v7v3:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//禁止垃圾评论提交到数据库
function
v7v3_fuckspam
(
$
comment
)
{
if
(
is_user_logged_in
(
)
)
{
return
$
comment
;
}
//登录用户无压力...
if
(
wp_blacklist_check
(
$
comment
[
'comment_author'
]
,
$
comment
[
'comment_author_email'
]
,
$
comment
[
'comment_author_url'
]
,
$
comment
[
'comment_content'
]
,
$
comment
[
'comment_author_IP'
]
,
$
comment
[
'comment_agent'
]
)
)
{
header
(
"Content-type: text/html; charset=utf-8"
)
;
wp_die
(
'
您评论包含辱骂,过激或者违反法律等言论,或者您的IP已被加入黑名单,如有疑问请联系管理员处理!返回文章页
'
)
;
}
else
{
return
$
comment
;
}
}
add_filter
(
'preprocess_comment'
,
'v7v3_fuckspam'
)
;
|
说到屏蔽垃圾评论写入数据库,这里WP酷介绍一下之前发布的几种防垃圾评论的方法,具体见《WordPress第一次评论禁止全英文/屏蔽日语垃圾评论》和《可否与垃圾评论说再见?Willin Kan之Anti-Spam版本集合》, Anti-Spam记得放置在主题目录的functions.php第一行。除此之外仍可以使用第三方评论工具以及WordPress自家的Akismet来为博客撑起“保护伞”。
1、CDN加速:
其实网站加载速度的最终瓶颈在于前端资源,那么做好前端优化网站的速度一定有大幅度的提升。如果你的网站在国外, 那么使用一个国内的静态资源CDN就很有必要了。本站推荐七牛云存储,可看《付费图床推荐 – 七牛云存储》和《多说提速:使用七牛云存储实现多说静态文件CDN》了解一下七牛加速网站的原理。在后天WP酷将会专门发布一篇如何将WordPress缓存插件与七牛云存储无缝整合的文章,欢迎关注。
2、去除冗余的html代码
做完了以上步骤,我们可以进一步的优化WordPress的前端代码达到深度优化的目的。大多数爱折腾的童鞋一定会发现WordPress的头部通常会载入很多无关紧要的代码,但是这些代码在WordPress的头部文件中却找不到。其实呢这些代码都是通过wp_head()这个函数加载进来的,那么怎么来删除这些代码呢?在functions.php文件中加入以下代码即可,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
remove_action
(
'wp_head'
,
'wp_enqueue_scripts'
,
1
)
;
//Javascript的调用
remove_action
(
'wp_head'
,
'feed_links'
,
2
)
;
//移除feed
remove_action
(
'wp_head'
,
'feed_links_extra'
,
3
)
;
//移除feed
remove_action
(
'wp_head'
,
'rsd_link'
)
;
//移除离线编辑器开放接口
remove_action
(
'wp_head'
,
'wlwmanifest_link'
)
;
//移除离线编辑器开放接口
remove_action
(
'wp_head'
,
'index_rel_link'
)
;
//去除本页唯一链接信息
remove_action
(
'wp_head'
,
'parent_post_rel_link'
,
10
,
0
)
;
//清除前后文信息
remove_action
(
'wp_head'
,
'start_post_rel_link'
,
10
,
0
)
;
//清除前后文信息
remove_action
(
'wp_head'
,
'adjacent_posts_rel_link_wp_head'
,
10
,
0
)
;
remove_action
(
'wp_head'
,
'locale_stylesheet'
)
;
remove_action
(
'publish_future_post'
,
'check_and_publish_future_post'
,
10
,
1
)
;
remove_action
(
'wp_head'
,
'noindex'
,
1
)
;
remove_action
(
'wp_head'
,
'wp_print_styles'
,
8
)
;
//载入css
remove_action
(
'wp_head'
,
'wp_print_head_scripts'
,
9
)
;
remove_action
(
'wp_head'
,
'wp_generator'
)
;
//移除WordPress版本
remove_action
(
'wp_head'
,
'rel_canonical'
)
;
remove_action
(
'wp_footer'
,
'wp_print_footer_scripts'
)
;
remove_action
(
'wp_head'
,
'wp_shortlink_wp_head'
,
10
,
0
)
;
remove_action
(
'template_redirect'
,
'wp_shortlink_header'
,
11
,
0
)
;
add_action
(
'widgets_init'
,
'my_remove_recent_comments_style'
)
;
function
my_remove_recent_comments_style
(
)
{
global
$
wp_widget_factory
;
remove_action
(
'wp_head'
,
array
(
$
wp_widget_factory
->
widgets
[
'WP_Widget_Recent_Comments'
]
,
'recent_comments_style'
)
)
;
}
|