78模板网分享cms建站教程,提供网站模板、网站插件、办公模板等模板教程免费学习,找模板教程就上78模板网!

网站加载速度慢?你做好这5个措施了么?

大部分新手站长在安装好主题之后,就开始上传产品,开始书写文章。而从不去关注下网站的加载速度,也不去做一些基本的措施,让自己网站的体验速度更好。以下这几个点,是你建站之前必须做的。

伪静态

每一个网站建站开始,都必须先做的一件事就是伪静态,或者说调整固定链接格式。这对于你之后的链接结构而言极为重要,如果你在完成了绝大部分的网站内容上传后,再突然更改链接结构,那将是致命的。将导致你之前所有的链接变成死链。

简单的来讲,伪静态就是为你站点的链接添加个 .html 

以WordPress为例,什么样的.html才是受欢迎的呢?

这里,只推荐两种:

  • 1、/%postname%.html

  • 2、/%postid%.html

如果不是由于你站点要求,那么第一种会是最好的。你也可以再将分类加上。

对绝大多数站点,完成了固定连接的设置之后,还需要调整下网站伪静态设置项,将nginx规则添加上去。宝塔的话如下:

网站加载速度慢?你做好这5个措施了么?  第1张
宝塔面板伪静态

图片优化

无论如何,都需要进行图片的优化工作。不管你是将其放在云存储还是进行图片压缩,这都是有必要的。完全不对其做任何步骤会极大的拉低你站点的性能,严重影响你网站的访问速度。80%以上的速度慢都是由图片引起的。

在这里,主要说下图片压缩这个,两个方法:

  • 1、压缩好之后再上传

  • 2、上传好之后再压缩

压缩好之后上传,顾名思义,你先把图片压缩好,再上传。推荐使用下面这个压缩插件:

Caesium图片压缩软件,实测效果很强大。同时,这是一款免费的开源软件,你可以点击这里前往下载,也可以在右侧边栏的下载按钮直接下载。

Compress JPEG & PNG images WP图片压缩插件 – 由大名鼎鼎的Tinypng在线图片压缩网站开发的WordPress图片压缩插件。【本站也在使用】但其每月只有500张的图片压缩限额。对博客站点来说够用了,但是对大型站点或者图片站来说,也许远远不够。但是:你可以通过注册多个账号来获取API(使用多个邮箱),当然,超出后,它的价格如下:

网站加载速度慢?你做好这5个措施了么?  第2张
tinypng 定价

如果你觉得麻烦的话,可以更换使用其他的插件,比如image-optimizer-by-wenprise,喜欢这两款插件的原因是因为它们都是使用的服务器自带组件pngquant,gifsicle…等来实现的压缩,拥有更快的压缩效率和不错的压缩质量。

动静分离【配置CDN缓存】

一个老生常谈的话题,每一个站长对网站都应该做动静分离。

将图片与网站分离,是一个方法,但不是全部。有条件的,将所有静态文件放在云存储上是最好的方法。但为了节约成本、方便以及后期维护,我依然推荐你在服务器上做图片压缩以及使用CDN做动静分离

通过CDN做动静分离,及其简单,只需要调整下缓存配置即可。将静态文件(js,css,jpg,font…)等等这些基本以后不会变动的东西进行强制缓存即可。腾讯的话,这样:

网站加载速度慢?你做好这5个措施了么?  第3张
缓存配置

就可以了

不需要那么繁琐的去修改,去引入。只需要整站配置CDN缓存

即:网站使用CDN,静态使用CDN缓存

现如今,使用CDN的成本极低,那么多免费CDN以及廉价好用的CDN,几乎0成本。关于CDN选择即云存储,你可以看这里:盘点国内那些免费好用的CDN及云存储

分流

这个很少有人提及,大部分人都不注意,但这却是极为重要的一环。能帮助我们后续省下不少麻烦事。简单的说来就是:国内国外的访客分开。

如何分开呢?答:使用域名解析。

总所周知的是,国内的CDN厂商的国外流量费用很高。而很多时候,我们绝大多数的攻击又是来自于国外的。

因此,我们将国内解析到国内的CDN厂商那里,而国外解析到能抗攻击的CDN厂商那里,比如:Cloudflare

你可以查看下你的域名服务商是否有提供此功能,如果没有,那就换到阿里云来吧:免费而且可靠

网站加载速度慢?你做好这5个措施了么?  第4张
域名解析分流

通过该方法,我们实现了网站在全球都有不错的访问速度!

当然,如果有需求你还可以更加细致。甚至使用付费版域名解析,甚至可以根据省市地区来解析到不同的服务器!

WP程序优化

WP建站之初,一些恶心和没必要的功能务必要关掉,比如缩略图。不用解释,全部关了吧,然后使用本站推荐的thumbnails插件即可。

网站加载速度慢?你做好这5个措施了么?  第5张
关闭WP缩略图生成

Thumbnails-按需加载缩略图WordPressthe插件

然后以下代码看着使用:

//清理wp_postmeta数据表,删除文章Meta标签
DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';
//自动保存草稿
DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type ='revision'
//删除WordPress未使用标签垃圾数据
SELECT * FROM wp_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
INNER JOIN wp_term_relationships wtr ON wtr.term_taxonomy_id=wtt.term_taxonomy_id
LEFT JOIN wp_posts wp ON wp.ID=wtr.object_id
WHERE taxonomy='post_tag'
AND ID IS null
AND NOT EXISTS(SELECT * From wp_terms wt2
INNER JOIN wp_term_taxonomy wtt2 ON wt2.term_id=wtt2.term_id WHERE wtt2.parent=wt.term_id) ORDER BY name;
remove_action( 'wp_head',   'rsd_link' ); //移除离线编辑器开放接口
remove_action( 'wp_head',   'wlwmanifest_link' ); //移除离线编辑器开放接口
//remove_action( 'wp_head',   'index_rel_link' ); //去除本页唯一链接信息
remove_action( 'wp_head',   'wp_generator' ); //移除WordPress版本
remove_action( 'wp_head',   'wp_resource_hints', 2 );//禁止加载s.w.org
remove_action( 'wp_head',   'feed_links', 2 );//移除feed
remove_action( 'wp_head',   'feed_links_extra', 3);//移除feed
remove_action( 'wp_head',   'wp_shortlink_wp_head' );//移除短连接
remove_action( 'wp_head',   'adjacent_posts_rel_link', 10, 0);//相邻的postsrel-link
remove_filter( 'the_content', 'wptexturize');//取消内容中字符转义
//remove_filter('the_excerpt', 'wptexturize');//取消摘要转义
//remove_filter('comment_text', 'wptexturize');//取消评论转义
add_filter( 'run_wptexturize', '__return_false' );//禁止 WordPress 网站title中的 “-” 被转义
add_filter('show_admin_bar', '__return_false', 9999);//删除最顶部的管理横条
//remove_action( 'wp_head', 'wp_enqueue_scripts', 1 ); //Javascript的调用
/** 禁用自动保存 */
add_action('wp_print_scripts', 'qgg_not_autosave');
function qgg_not_autosave() {
    wp_deregister_script('autosave');
}
//禁止加载WP自带的jquery.js
if ( !is_admin() ) { // 后台不禁止
function my_init_method() {
wp_deregister_script( 'jquery' ); // 取消原有的 jquery 定义
}
add_action('init', 'my_init_method');
}
wp_deregister_script( 'l10n' );
add_filter( 'wp_revisions_to_keep', 'specs_wp_revisions_to_keep', 10, 2 );//关闭Wordpress中的修订功能
//add_filter('comment_form_field_cookies','__return_false');//移除评论隐私Cookie 确认存储勾选框
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );//彻底禁止缩略图裁剪
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 );//载入JS
//remove_action( 'wp_head', 'rel_canonical' );//移除Canonical标记
remove_action( 'wp_footer', 'wp_print_footer_scripts' );//强制所有脚本进入WordPress中的wp_footer
remove_action( 'template_redirect', 'wp_shortlink_header', 11, 0 );//屏蔽WP产生的rel=shortlink头部信息
remove_action( 'template_redirect','rest_output_link_header', 11, 0 );//屏蔽WP自带API产生的头部信息
//清除前后文信息
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 ); // Removes the prev link
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 ); // Removes the start link
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); // Removes the relational links for the posts adjacent to the current post.
//屏蔽gravatar,调用多说缓存图片
function duoshuo_avatar($avatar) {
$avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"gravatar.duoshuo.com",$avatar);
return $avatar;
}
add_filter( 'get_avatar', 'duoshuo_avatar', 10, 3 );
//屏蔽谷歌文字代码1
if (!function_exists('remove_wp_open_sans')) :
    function remove_wp_open_sans() {
        wp_deregister_style( 'open-sans' );
        wp_register_style( 'open-sans', false );
    }
    add_action('wp_enqueue_scripts', 'remove_wp_open_sans');
    // Uncomment below to remove from admin
    // add_action('admin_enqueue_scripts', 'remove_wp_open_sans');
endif;
//屏蔽谷歌文字代码2
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' );
	//移除wp-json链接
add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );
// 移除头部 wp-json 标签和 HTTP header 中的 link
remove_action('template_redirect', 'rest_output_link_header', 11 );
// 屏蔽登录错误提示
function no_errors_please(){
return '账号或者密码不正确,请重新输入!';
}
add_filter( 'login_errors', 'no_errors_please' );
//禁止生成多张微略图
add_filter( 'intermediate_image_sizes', function( $sizes )
{
    return array_filter( $sizes, function( $val )
    {
        return 'medium_large' !== $val; // Filter out 'medium_large'
    } );
} );
//禁止加载wp-embeds.mins.js
function disable_embeds_init() {
    /* @var WP $wp */
    global $wp;
    // Remove the embed query var.
    $wp->public_query_vars = array_diff( $wp->public_query_vars, array(
        'embed',
    ) );
    // Remove the REST API endpoint.
    remove_action( 'rest_api_init', 'wp_oembed_register_route' );
     // Turn off
    add_filter( 'embed_oembed_discover', '__return_false' );
     // Don't filter oEmbed results.
    remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );
     // Remove oEmbed discovery links.
    remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
     // Remove oEmbed-specific JavaScript from the front-end and back-end.
    remove_action( 'wp_head', 'wp_oembed_add_host_js' );
    add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );
     // Remove all embeds rewrite rules.
    add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );
}
 add_action( 'init', 'disable_embeds_init', 9999 );
 /**
 * Removes the 'wpembed' TinyMCE plugin.
 *
 * @since 1.0.0
 *
 * @param array $plugins List of TinyMCE plugins.
 * @return array The modified list.
 */
function disable_embeds_tiny_mce_plugin( $plugins ) {
    return array_diff( $plugins, array( 'wpembed' ) );
}
/**
 * Remove all rewrite rules related to embeds.
 *
 * @since 1.2.0
 *
 * @param array $rules WordPress rewrite rules.
 * @return array Rewrite rules without embeds rules.
 */
function disable_embeds_rewrites( $rules ) {
    foreach ( $rules as $rule => $rewrite ) {
        if ( false !== strpos( $rewrite, 'embed=true' ) ) {
            unset( $rules[ $rule ] );
        }
    }
    return $rules;
}
/**
 * Remove embeds rewrite rules on plugin activation.
 *
 * @since 1.2.0
 */
function disable_embeds_remove_rewrite_rules() {
    add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );
    flush_rewrite_rules();
}
 register_activation_hook( __FILE__, 'disable_embeds_remove_rewrite_rules' );
/**
 * Flush rewrite rules on plugin deactivation.
 *
 * @since 1.2.0
 */
function disable_embeds_flush_rewrite_rules() {
    remove_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );
    flush_rewrite_rules();
}
register_deactivation_hook( __FILE__, 'disable_embeds_flush_rewrite_rules' );
//去除分类标志代码
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;
}
/**
 * WordPress禁止某些用户账号登录插件源码分析,及WordPress用户黑名单插件“盘他”下载
 * https://www.dujin.org/12560.html
 */
//在资料页面添加选项
function dj_rc_admin_init(){
    // 编辑用户资料
    add_action( 'edit_user_profile', 'dj_rc_edit_user_profile' );
    add_action( 'edit_user_profile_update', 'dj_rc_edit_user_profile_update' );
}
add_action('admin_init', 'dj_rc_admin_init' );
//在个人资料页面添加一个复选框
function dj_rc_edit_user_profile() {
    if ( !current_user_can( 'edit_users' ) ) {
        return;
    }
    global $user_id;
    // 用户不能禁止自己
    $current_user = wp_get_current_user();
    $current_user_id = $current_user->ID;
    if ( $current_user_id == $user_id ) {
        return;
    }
    ?>
    <h3>权限设置</h3>
    <table class="form-table">
    <tr>
        <th scope="row">禁止用户登录</th>
        <td><label for="dj_rc_ban"><input name="dj_rc_ban" type="checkbox" id="dj_rc_ban"
        <?php if (dj_rc_is_user_banned( $user_id )){echo 'checked="checked"';} ?> /> 勾起来,盘Ta,什么玩意儿……</label></td>
    </tr>
    </table>
    <?php
}
//添加一个函数来将这个选项的值保存到数据库中
function dj_rc_edit_user_profile_update() {
    if ( !current_user_can( 'edit_users' ) ) {
        return;
    }
    global $user_id;
    // 用户不能禁止自己
    $current_user    = wp_get_current_user();
    $current_user_id = $current_user->ID;
    if ( $current_user_id == $user_id ) {
        return;
    }
    // 锁定
    if( isset( $_POST['dj_rc_ban'] ) && $_POST['dj_rc_ban'] = 'on' ) {
        dj_rc_ban_user( $user_id );
    } else { // 解锁
        dj_rc_unban_user( $user_id );
    }
}
//禁止用户
function dj_rc_ban_user( $user_id ) {
    $old_status = dj_rc_is_user_banned( $user_id );
    // 更新状态
    if ( !$old_status ) {
        update_user_option( $user_id, 'dj_rc_banned', true, false );
    }
}
//解禁用户
function dj_rc_unban_user( $user_id ) {
    $old_status = dj_rc_is_user_banned( $user_id );
    // 更新状态
    if ( $old_status ) {
        update_user_option( $user_id, 'dj_rc_banned', false, false );
    }
}
//判断用户是否被禁止
function dj_rc_is_user_banned( $user_id ) {
    return get_user_option( 'dj_rc_banned', $user_id, false );
}
//阻止已禁止的用户登录
function dj_rc_authenticate_user( $user ) {
    if ( is_wp_error( $user ) ) {
        return $user;
    }
    // 如果用户被禁止,则返回错误提示,这里是显示给登录用户看的,错误提示可根据自己的喜好修改。
    $banned = get_user_option( 'dj_rc_banned', $user->ID, false );
    if ( $banned ) {
        return new WP_Error( 'dj_rc_banned', __('抱歉,您已被禁止登录!请联系站长解禁。', 'rc') );
    }
    return $user;
}
//将该函数挂载到 wp_authenticate_user 钩子
add_filter( 'wp_authenticate_user', 'dj_rc_authenticate_user', 1 );
/*
*Wordpress文章关键词自动添加内链链接代码
*/
//连接数量
 $match_num_from = 1; //一个关键字少于多少不替换
 $match_num_to = 1; //一个关键字最多替换次数
 //连接到WordPress的模块
 add_filter('the_content','tag_link',1);
 //按长度排序
 function tag_sort($a, $b){
 if ( $a->name == $b->name ) return 0;
 return ( strlen($a->name) > strlen($b->name) ) ? -1 : 1;
 }
 //改变标签关键字
 function tag_link($content){
 global $match_num_from,$match_num_to;
 $posttags = get_the_tags();
 if ($posttags) {
 usort($posttags, "tag_sort");
 foreach($posttags as $tag) {
 $link = get_tag_link($tag->term_id);
 $keyword = $tag->name;
 //连接代码
 $cleankeyword = stripslashes($keyword);
 $url = "<a href="$link" title="".str_replace('%s',addcslashes($cleankeyword, '$'),__('查看所有文章关于 %s')).""";
 //$url .= 'target="_blank"';
 $url .= ">".addcslashes($cleankeyword, '$')."</a>";
 $limit = rand($match_num_from,$match_num_to);
 //不连接的代码
 $content = preg_replace( '|(<a[^>]+>)(.*)('.$ex_word.')(.*)(</a[^>]*>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
 $content = preg_replace( '|(<img)(.*?)('.$ex_word.')(.*?)(>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
 $cleankeyword = preg_quote($cleankeyword,''');
 $regEx = ''(?!((<.*?)|(<a.*?)))('. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))'s' . $case;
 $content = preg_replace($regEx,$url,$content,$limit);
 $content = str_replace( '%&&&&&%', stripslashes($ex_word), $content);
 }
 }
 return $content;
 }
//支持WebP格式上传
function bzg_filter_mime_types( $array ) {
	$array['webp'] = 'image/webp';
	return $array;
}
add_filter( 'mime_types', 'bzg_filter_mime_types', 10, 1 );
//支持WebP格式媒体库显示
function bzg_file_is_displayable_image($result, $path) {
	$info = @getimagesize( $path );
	if($info['mime'] == 'image/webp') {
		$result = true;
	}
	return $result;
}
add_filter( 'file_is_displayable_image', 'bzg_file_is_displayable_image', 10, 2 );
//自定义上传
if(get_option('upload_path')=='wp-content/uploads' || get_option('upload_path')==null) {
    update_option('upload_path',WP_CONTENT_DIR.'/uploads');
}
//上传文件重命名
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
    $info = pathinfo($file['name']);
    $ext = '.' . $info['extension'];
    $md5 = md5($file['name']);
    $file['name'] = $md5.$ext;
    return $file;
}
//禁止EMOJI
remove_action('admin_print_scripts',	'print_emoji_detection_script');
remove_action('admin_print_styles',	'print_emoji_styles');
remove_action('wp_head',		'print_emoji_detection_script',	7);
remove_action('wp_print_styles',	'print_emoji_styles');
remove_action('embed_head',		'print_emoji_detection_script');
remove_filter('the_content_feed',	'wp_staticize_emoji');
remove_filter('comment_text_rss',	'wp_staticize_emoji');
remove_filter('wp_mail',		'wp_staticize_emoji_for_email');
add_filter( 'emoji_svg_url',		'__return_false' );


本文链接:http://78moban.cn/post/14387.html

版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!

联系技术
文章删除 友链合作 技术交流群
1050177837
公众号
公众号
公众号
返回顶部