WordPress部分性能优化设置函数汇总

不少小伙伴整天问如何优化WordPress,不断尝试各类优化缓存的插件,其实WordPress程序是一个很开放…

IMG_0

不少小伙伴整天问如何优化WordPress,不断尝试各类优化缓存的插件,其实WordPress程序是一个很开放自定义的程序,可以不用插件就实现大量的性能优化。这里搬主题就汇总了部分性能优化的函数,分享给大家。可以让WordPress网站少用插件,从而网站运行更快。

以下的函数大家可以根据实际需要,将相应功能函数放到WordPress主题文件夹的functions.php文件下保持即可。

1、禁用WordPress的自动保存功能[wp-includesfunctions.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-includesfunctions.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-includesfunctions.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;
    }
}

类别:WordPress 进阶教程

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册