大部分新手站长在安装好主题之后,就开始上传产品,开始书写文章。而从不去关注下网站的加载速度,也不去做一些基本的措施,让自己网站的体验速度更好。以下这几个点,是你建站之前必须做的。
每一个网站建站开始,都必须先做的一件事就是伪静态,或者说调整固定链接格式。这对于你之后的链接结构而言极为重要,如果你在完成了绝大部分的网站内容上传后,再突然更改链接结构,那将是致命的。将导致你之前所有的链接变成死链。
简单的来讲,伪静态就是为你站点的链接添加个 .html
以WordPress为例,什么样的.html才是受欢迎的呢?
这里,只推荐两种:
1、/%postname%.html
2、/%postid%.html
如果不是由于你站点要求,那么第一种会是最好的。你也可以再将分类加上。
对绝大多数站点,完成了固定连接的设置之后,还需要调整下网站伪静态设置项,将nginx规则添加上去。宝塔的话如下:
无论如何,都需要进行图片的优化工作。不管你是将其放在云存储还是进行图片压缩,这都是有必要的。完全不对其做任何步骤会极大的拉低你站点的性能,严重影响你网站的访问速度。80%以上的速度慢都是由图片引起的。
在这里,主要说下图片压缩这个,两个方法:
1、压缩好之后再上传
2、上传好之后再压缩
压缩好之后上传,顾名思义,你先把图片压缩好,再上传。推荐使用下面这个压缩插件:
Caesium图片压缩软件,实测效果很强大。同时,这是一款免费的开源软件,你可以点击这里前往下载,也可以在右侧边栏的下载按钮直接下载。
Compress JPEG & PNG images WP图片压缩插件 – 由大名鼎鼎的Tinypng在线图片压缩网站开发的WordPress图片压缩插件。【本站也在使用】但其每月只有500张的图片压缩限额。对博客站点来说够用了,但是对大型站点或者图片站来说,也许远远不够。但是:你可以通过注册多个账号来获取API(使用多个邮箱),当然,超出后,它的价格如下:
如果你觉得麻烦的话,可以更换使用其他的插件,比如image-optimizer-by-wenprise,喜欢这两款插件的原因是因为它们都是使用的服务器自带组件pngquant,gifsicle…等来实现的压缩,拥有更快的压缩效率和不错的压缩质量。
一个老生常谈的话题,每一个站长对网站都应该做动静分离。
将图片与网站分离,是一个方法,但不是全部。有条件的,将所有静态文件放在云存储上是最好的方法。但为了节约成本、方便以及后期维护,我依然推荐你在服务器上做图片压缩以及使用CDN做动静分离。
通过CDN做动静分离,及其简单,只需要调整下缓存配置即可。将静态文件(js,css,jpg,font…)等等这些基本以后不会变动的东西进行强制缓存即可。腾讯的话,这样:
就可以了。
不需要那么繁琐的去修改,去引入。只需要整站配置CDN缓存。
即:网站使用CDN,静态使用CDN缓存
现如今,使用CDN的成本极低,那么多免费CDN以及廉价好用的CDN,几乎0成本。关于CDN选择即云存储,你可以看这里:盘点国内那些免费好用的CDN及云存储
这个很少有人提及,大部分人都不注意,但这却是极为重要的一环。能帮助我们后续省下不少麻烦事。简单的说来就是:国内国外的访客分开。
如何分开呢?答:使用域名解析。
总所周知的是,国内的CDN厂商的国外流量费用很高。而很多时候,我们绝大多数的攻击又是来自于国外的。
因此,我们将国内解析到国内的CDN厂商那里,而国外解析到能抗攻击的CDN厂商那里,比如:Cloudflare
你可以查看下你的域名服务商是否有提供此功能,如果没有,那就换到阿里云来吧:免费而且可靠
通过该方法,我们实现了网站在全球都有不错的访问速度!
当然,如果有需求你还可以更加细致。甚至使用付费版域名解析,甚至可以根据省市地区来解析到不同的服务器!
WP建站之初,一些恶心和没必要的功能务必要关掉,比如缩略图。不用解释,全部关了吧,然后使用本站推荐的thumbnails插件即可。
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
版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!