WordPress基本安全防护和实用优化

WordPress作为一款非常流行的博客程序,广受站长们喜爱。本文讲述与后台安全、快捷按钮、系统功能等相关的一些最为实用的优化方案。

安全防护及功能优化

修改当前主题的functions.php,加入以下代码:

//保护后台登录
//伪装后台地址,将路径改为${域名}/wp-login.php?user=abc&word=123
//修改以下代码中对应的值
add_action('login_enqueue_scripts','login_protection'); 
function login_protection(){ 
  if($_GET['user'] != 'abc' && $_GET['word'] != '123') {
    header('Location: https://www.olzl.net/');
  }
}

//移除自动转换符号功能
//保留输入时的符号,不进行转换
$qmr_work_tags = array(
  'the_title',            //标题
  'the_content',          //内容
  'the_excerpt',          //摘要
  'comment_author',       //评论作者
  'comment_text',         //评论内容
  'bloginfo',             //网站简介
  'wp_title',             //网站标题
  'term_description',     //项目描述
  'category_description', //分类描述
  'widget_title',         //小工具标题
  'widget_text'           //小工具文本
);
foreach ( $qmr_work_tags as $qmr_work_tag ) {
  remove_filter ($qmr_work_tag, 'wptexturize');
}

//插入编辑器快捷按钮
//自定义进行文本编辑时显示的快捷按钮
function appthemes_add_quicktags() {
?> 
<script type="text/javascript">
QTags.addButton( 'H3', 'H3', '<H3>','</H3>' );
QTags.addButton( 'Pre', 'Pre', '<pre>','</pre>' );
QTags.addButton( '表格', '表格', '<table class="tbnormal"><tbody><tr class="ttl"><td></td><td></td></tr><tr><td></td><td></td></tr></tbody></table>' );
</script>
<?php
}
add_action('admin_print_footer_scripts', 'appthemes_add_quicktags' );

//禁止对附件进行评论
function filter_media_comment_status( $open, $post_id ) {
  $post = get_post( $post_id );
  if( $post->post_type == 'attachment' ) {
    return false;
  }
  return $open;
}
add_filter( 'comments_open', 'filter_media_comment_status', 10 , 2 );

//移除WP-EMBED
function disable_embeds_code_init() {
  remove_action( 'rest_api_init', 'wp_oembed_register_route' );
  add_filter( 'embed_oembed_discover', '__return_false' );
  remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );
  remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
  remove_action( 'wp_head', 'wp_oembed_add_host_js' );
  add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );
  add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' ); remove_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10 );
} 
add_action( 'init', 'disable_embeds_code_init', 9999 );
function disable_embeds_tiny_mce_plugin($plugins) {
  return array_diff($plugins, array('wpembed'));
} 
function disable_embeds_rewrites($rules) {
  foreach($rules as $rule => $rewrite) {
    if(false !== strpos($rewrite, 'embed=true')) {
      unset($rules[$rule]);
    }
  }
  return $rules;
}

指定favicon位置

开启多站点模式后,一般情况下,默认的favicon.ico被重定向至wp-includes/images/w-logo-blue-white-bg.png,为了防止在更新wp后被覆盖……

方法一

指定favicon图像位置至主题的image目录下,修改文件wp-includes/functions.php,找到“do_favicon”代码段:

# 注释原代码行
//wp_redirect( get_site_icon_url( 32, includes_url( 'images/w-logo-blue-white-bg.png' ) ) );
# 修改为当前主题下的favicon图像
wp_redirect( get_site_icon_url( 32, get_template_directory_uri().'/images/favicon.png' ) );

方法二

修改nginx配置,在server段加入以下规则:

rewrite ^/([_0-9a-zA-Z-]+/)?favicon.ico /favicon.ico last;

原创文章禁止转载:技术学堂 » WordPress基本安全防护和实用优化

精彩评论

1+2=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏