不少小伙伴整天问如何优化WordPress,不断尝试各类优化缓存的插件,其实WordPress程序是一个很开放自定义的程序,可以不用插件就实现大量的性能优化。这里搬主题就汇总了部分性能优化的函数,分享给大家。可以让WordPress网站少用插件,从而网站运行更快。
以下的函数大家可以根据实际需要,将相应功能函数放到WordPress主题文件夹的functions.php文件下保持即可。
1、禁用WordPress的自动保存功能[wp-includes\functions.php]
//禁止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'); }
2、去除无用的html代码,自己选择使用[wp-includes\functions.php]
//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')); }
3、相关功能函数补充
remove_action( 'wp_head', 'wp_resource_hints', 2 ); //禁止加载emoji remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); add_filter( 'emoji_svg_url', '__return_false' ); //禁止自动更新 add_filter( 'auto_update_translation', '__return_false' ); //禁止自动更新和后台更新检查 add_filter('automatic_updater_disabled', '__return_true');// 彻底关闭自动更新 remove_action('init', 'wp_schedule_update_checks');// 关闭更新检查定时作业 wp_clear_scheduled_hook('wp_version_check');// 移除已有的版本检查定时作业 wp_clear_scheduled_hook('wp_update_plugins');// 移除已有的插件更新定时作业 wp_clear_scheduled_hook('wp_update_themes');// 移除已有的主题更新定时作业 wp_clear_scheduled_hook('wp_maybe_auto_update');// 移除已有的自动更新定时作业 remove_action( 'admin_init', '_maybe_update_core' ); // 移除后台内核更新检查 remove_action( 'load-plugins.php', 'wp_update_plugins' ); // 移除后台插件更新检查 remove_action( 'load-update.php', 'wp_update_plugins' ); remove_action( 'load-update-core.php', 'wp_update_plugins' ); remove_action( 'admin_init', '_maybe_update_plugins' ); remove_action( 'load-themes.php', 'wp_update_themes' ); // 移除后台主题更新检查 remove_action( 'load-update.php', 'wp_update_themes' ); remove_action( 'load-update-core.php', 'wp_update_themes' ); remove_action( 'admin_init', '_maybe_update_themes' ); ## function disable_dashboard_widgets() { remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');//近期评论 remove_meta_box('dashboard_recent_drafts', 'dashboard', 'normal');//近期草稿 remove_meta_box('dashboard_primary', 'dashboard', 'core');//wordpress博客 remove_meta_box('dashboard_secondary', 'dashboard', 'core');//wordpress其它新闻 remove_meta_box('dashboard_right_now', 'dashboard', 'core');//wordpress概况 remove_meta_box('dashboard_incoming_links', 'dashboard', 'core');//wordresss链入链接 remove_meta_box('dashboard_plugins', 'dashboard', 'core');//wordpress链入插件 remove_meta_box('dashboard_quick_press', 'dashboard', 'core');//wordpress快速发布 } add_action('admin_menu', 'disable_dashboard_widgets'); ##SQL查询时间 START add_action( 'wp_footer', 'live_page_speed' ); function live_page_speed() { global $wpdb; $data = $wpdb->queries; $query_time = 0; $total_time = round(timer_stop(false, 22 ),4); if ($wpdb->queries != null) foreach ( $wpdb->queries as $query ) $query_time = $query_time + $query[1]; $query_time = round($query_time,4); $content = '<center> '; $content .= $wpdb->num_queries; $content .= ' Queries in '; $content .= $query_time; $content .= ' Seconds. Page Loaded in '; $content .= $total_time; $content .= ' Seconds.';$content .= '</center> '; /*if( ! current_user_can( 'administrator' ) ) $content = "";*/ echo $content; } ##SQL查询时间 END ## add_action( 'wp_footer', 'wpjam_page_speed' ); function wpjam_page_speed() { date_default_timezone_set( get_option( 'timezone_string' ) ); $content = '<center> '; $content .= '页面生成时间 '; $content .= timer_stop( $display = 0, $precision = 2 ); $content .= ' 查询 '; $content .= get_num_queries(); $content .= ' 次';$content .= '</center> '; /*if( ! current_user_can( 'administrator' ) ) $content = "";*/ echo $content; } ## add_filter( 'gettext_with_context', 'wpjam_disable_google_fonts', 888, 4); function wpjam_disable_google_fonts($translations, $text, $context, $domain ) { $google_fonts_contexts = array('Open Sans font: on or off','Lato font: on or off','Source Sans Pro font: on or off','Bitter font: on or off'); if( $text == 'on' && in_array($context, $google_fonts_contexts ) ){ $translations = 'off'; } return $translations; } ## //function remove_open_sans_from_wp_core() { //wp_deregister_style( 'open-sans' ); //wp_register_style( 'open-sans', false ); //wp_enqueue_style('open-sans',''); //} //add_action( 'init', 'remove_open_sans_from_wp_core' ); // Remove Open Sans that WP adds from frontend if (!function_exists('remove_wp_open_sans')) : function remove_wp_open_sans() { wp_deregister_style( 'open-sans' ); wp_register_style( 'open-sans', false ); } // 前台删除Google字体CSS add_action('wp_enqueue_scripts', 'remove_wp_open_sans'); // 后台删除Google字体CSS add_action('admin_enqueue_scripts', 'remove_wp_open_sans'); endif; ## //function wpjam_disable_feed() { // wp_die(__('本博客不再提供 Feed')); //} //add_action('do_feed', 'wpjam_disable_feed', 1); //add_action('do_feed_rdf', 'wpjam_disable_feed', 1); //add_action('do_feed_rss', 'wpjam_disable_feed', 1); //add_action('do_feed_rss2', 'wpjam_disable_feed', 1); //add_action('do_feed_atom', 'wpjam_disable_feed', 1); ## remove_action( 'wp_head', 'feed_links_extra', 3 ); //去除评论feed remove_action( 'wp_head', 'feed_links', 2 ); //去除文章feed remove_action( 'wp_head', 'rsd_link' ); //针对Blog的远程离线编辑器接口 remove_action( 'wp_head', 'wlwmanifest_link' ); //Windows Live Writer接口 remove_action( 'wp_head', 'index_rel_link' ); //移除当前页面的索引 remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 ); //移除后面文章的url remove_action( 'wp_head', 'start_post_rel_link', 10, 0 ); //移除最开始文章的url remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );//自动生成的短链接 remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); ///移除相邻文章的url remove_action( 'wp_head', 'wp_generator' ); // 移除版本号 ## ## //不加载jquery_migrate,这个东西导致访问首页缓慢 add_filter( 'wp_default_scripts', 'dequeue_jquery_migrate' ); function dequeue_jquery_migrate( &$scripts){ if(!is_admin()){ $scripts->remove( 'jquery'); $scripts->add( 'jquery', false, array( 'jquery-core' ), '1.10.2' ); } } ## //移除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 ); ############################################### //禁用embeds功能 function disable_embeds_init() { /* @var WP $wp */ global $wp; $wp->public_query_vars = array_diff( $wp->public_query_vars, array( 'embed', ) ); 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' ); } add_action( 'init', 'disable_embeds_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; } 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' ); 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' ); ############################################################ //移除Wordpress后台顶部左上角的W图标 function annointed_admin_bar_remove() { global $wp_admin_bar; /* Remove their stuff */ $wp_admin_bar->remove_menu('wp-logo'); } add_action('wp_before_admin_bar_render', 'annointed_admin_bar_remove', 0); ## ## ## ## // set permalink //function set_permalink(){ // global $wp_rewrite; // $wp_rewrite->set_permalink_structure('/%postname%-%post_id%/'); //} //add_action('init', 'set_permalink'); ### //自定义登录页面的LOGO图片 function my_custom_login_logo() { echo ''; } add_action('login_head', 'my_custom_login_logo'); //自定义登录页面的LOGO链接为首页链接 add_filter('login_headerurl', create_function(false,"return get_bloginfo('url');")); //自定义登录页面LOGO提示为任意文本 function custom_loginlogo_desc($url) { return 'IT服务中心'; //修改文本信息 } add_filter( 'login_headertitle', 'custom_loginlogo_desc' ); ### //解决标题为空, 有错误需要判断页面 /* function filter_post_empty_title($title){ $format = get_post_format(); if($title == $post_id || $title == ''){ $time = get_the_time('Y-m-d H:i:s'); $title = get_post_format_string($format).' @ '.$time."请修改标题"; } return $title; } add_filter('the_title','filter_post_empty_title'); add_filter('get_the_title','filter_post_empty_title'); 解决标题为空 end */
4、搜索时间间隔设置
//搜索间隔设置 (选项在阅读设置) add_action('admin_init','searchInterval'); function searchInterval(){ add_settings_field('sI','搜索间隔控制','sIAdd','reading'); register_setting('reading','sI'); } function sIAdd(){ echo '<textarea name="sI" rows="1" cols="1" id="sI" class="large-text code">' . get_option('sI') . '</textarea> <br><more>输入秒即可如想要设置10秒在空格中输入"10"</more>'; } add_action('template_redirect', 'searchIntervalRealize'); function searchIntervalRealize(){ $currentTime = time(); $sI = get_option('sI'); // $IntervalTime = str_replace("rn", "|", $sI); $IntervalTime = '10' ; if(empty($IntervalTime)||$IntervalTime < 0){ wp_die('请在后台设置正确的间隔时间'); } if (is_search()){ if( empty($_COOKIE['live_searchInterval']) ){ setcookie('live_searchInterval',$currentTime,$currentTime+$IntervalTime); }else{ $beforeTime = $_COOKIE['live_searchInterval']; $DValue = $currentTime - $beforeTime; if ( $DValue < $IntervalTime ){ $errorInfo = '<a href="/">' . '请在'.$IntervalTime .'秒后再次使用搜索功能' . '</a>'; wp_die($errorInfo); } } } }
5、隐藏WordPress版本号
/* 在 js 文件和 css 文件中隐藏 WordPress 版本号 * @return {string} $src * @filter script_loader_src * @filter style_loader_src */ function livelu_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', 'livelu_remove_wp_version_strings' ); add_filter( 'style_loader_src', 'livelu_remove_wp_version_strings' ); /* 在 generator meta 标签中隐藏 WordPress版本号 */ function livelu_remove_version() { return ''; } add_filter('the_generator', 'livelu_remove_version');
6、禁用wordpress搜索功能,归档[wp-includes\functions.php]
add_filter('posts_search', 'disable_search_query_like'); function disable_search_query_like($arg){ if(!is_admin()){ return ''; }else{ return $arg; } } if(isset($_GET['s'])){ add_filter('posts_request', 'disable_search_query'); } function disable_search_query($arg){ echo ''; if(!is_admin()){ return ''; }else{ return $arg; } }