Skip to main content

服务器优化

为 PHP 开启 OPCache

;php.ini
opcache.enable=1
; 可用内存,单位 megabytes
opcache.memory_consumption=256
; 控制内存中最多可以缓存多少个 php 文件
; 对多缓存文件限制,命中率不到 100%,可以提高这个值
opcache.max_accelerated_files=5000
; 检查文件修改时间周期,默认为 2,单位秒
opcache.revalidate_free=240
; 设置缓存过期时间
opcache.revalidate_freq=0
; 是否快速关闭,打开后在 hp request shutdown 时候内存回收速度会提高
opcache.fast_shutdown=1
; 不保存文件注释
opcache.save_comments=0

为 MySQL 开启 Query Cache

;my.cnf
query_cache_type=1
query_cache_limit=1M
query_cache_size=16M

在 Wordpress 中开启 gzip

// 此代码需要放在 define('WP_USE_THEMES', true); 后,
ob_start(‘ob_gzhandler’);
# nginx config
gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_min_length 256;
gzip_http_version 1.1;

gzip_types text/plain text/css text/x-component text/html application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/x-icon image/svg+xml image/jpeg image/gif image/png font/opentype;
; php.ini
zlib.output_compression=On
zlib.output_compression_level=5

缓存

文件缓存

html 静态缓存

WP Super Cache 插件

Super Static Cache 插件

内存缓存

安装 Memcached 和 Batcache

yum -y install memcached
apt-get -y install memcached

下载 Memcached 插件 https://wordpress.org/plugins/memcached/ 下载 object-cache.php 移到 wp-content 目录下

下载 BatCache 插件 http://wordpress.org/extend/plugins/batcache/ 下载 object-cache.php 移到 wp-content 目录下

// wp-config.php
define('WP_CACHE', true);

关闭 Google 字体

function remove_open_sans() {
wp_deregister_style( 'open-sans' );
wp_register_style( 'open-sans', false );
wp_enqueue_style('open-sans','');
}
add_action( 'init', 'remove_open_sans' );

加速 Gravatar 头像

function my_avatar($avatar) {
$tmp = strpos($avatar, 'http');
$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
$tmp = strpos($g, 'avatar/') + 7;
$f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
$w = get_bloginfo('wpurl');
$e = ABSPATH .'avatar/'. $f .'.jpg';
$t = 1209600; //设定时间为14天,单位为秒
if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //头像不存在或时间超过14天,重新获取
copy(htmlspecialchars_decode($g), $e);
} else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);
return $avatar;
}
add_filter('get_avatar', 'my_avatar');

合并请求

  • Better WordPress Minify

WordPress Object Cache 函数

优化数据库 安装 WP-Optimize 插件 Smart WordPress 插件 开启 ETag

安全

关闭在线代码编辑

define('DISALLOW_FILE_EDIT', true);

识别文件监控变化

可以使用 iThemes Security 或 Wordfence 来监控 WordPress 的文件变动。

自动更新

define( 'WP_AUTO_UPDATE_CORE', true );

主题插件自动更新

add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

关闭错误输出

define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );

使用 ssl

define('FORCE_SSL_ADMIN, true);

修改数据库前缀

Change Table Prefix 插件修改数据库前缀

使用邮箱登录

安装 Email Login 插件

隐藏 wordpress 版本信息

/* Hide WP version strings from scripts and styles
* @return {string} $src
* @filter script_loader_src
* @filter style_loader_src
*/
function fjarrett_remove_wp_version_strings( $src ) {
global $wp_version;
parse_str(parse_url($src, PHP_URL_QUERY), $query);
if ( !empty($query['ver']) && $query['ver'] === $wp_version ) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter( 'script_loader_src', 'fjarrett_remove_wp_version_strings' );
add_filter( 'style_loader_src', 'fjarrett_remove_wp_version_strings' );

/* Hide WP version strings from generator meta tag */
add_filter( 'the_generator', '__return_empty_string' );

其他安全插件

  • BulletProof Security
  • Login LockDown

关闭 json rest api

add_filter('json_enabled', '__return_false');
add_filter('json_jsonp_enabled', '__return_false');

Theme Check 插件

注销掉返回首页

add_action(‘wp_logout’,’auto_redirect_after_logout’);
function auto_redirect_after_logout(){
wp_redirect( home_url() ); // 注销后跳转到首页
exit();
}

屏蔽菜单

function remove_menus(){
remove_menu_page( 'upload.php' ); //媒体库
remove_menu_page( 'themes.php' ); //外观
remove_menu_page( 'plugins.php' ); //插件
remove_menu_page( 'users.php' ); //用户
remove_menu_page( 'tools.php' ); //工具
}
add_action( 'admin_menu', 'remove_menus' );

屏蔽子菜单

“function remove_submenu() {
// 删除”外观”下面的子菜单”编辑”
remove_submenu_page('themes.php', 'theme-editor.php');
}
if (is_admin()){
//删除子菜单
add_action('admin_init','remove_submenu');
}

屏蔽后台无用组件

function remove_dashboard_widget() {
global $wp_meta_boxes;
// 以下这一行代码将删除 "快速发布" 模块
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);

// 以下这一行代码将删除 "引入链接" 模块
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
// 以下这一行代码将删除 "插件" 模块
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
// 以下这一行代码将删除 "近期评论" 模块
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
// 以下这一行代码将删除 "近期草稿" 模块
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
// 以下这一行代码将删除 "WordPress 开发日志" 模块
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
// 以下这一行代码将删除 "其它 WordPress 新闻" 模块
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}
add_action('wp_dashboard_setup', 'remove_dashboard_widget' );

移除 wordpress logo

function remove_admin_bar_logo() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('wp-logo');
}
add_action('wp_before_admin_bar_render', 'remove_admin_bar_logo', 0);

添加开发者信息

function remove_footer_admin () {
echo '由<a href="">白宦成 </a>开发';
}
add_filter('admin_footer_text', 'remove_footer_admin');

国际化

function i10n(){
$current_locale = get_locale();
if(!empty($current_locale)){
$mo_file = dirname(__FILE__).'/languages/'.$current_locale.".mo";
if (@file_exists($mo_file)&& is_readable($mo_file))
load_textdomain('your-plugins',$mo_file);
}
}
add_action('init','i10n');

WPML 插件(破解版)