wordpress最为全球最流行的博客或者CMS程序,他有他国外的特色,在国内很多东西也是不那么实用的,我们这里需要对functions.php进行添加一些代码来帮助和优化WordPress,提高国内的访问速度!
//添加代码 //屏蔽Gutenberg 编辑器 add_filter('use_block_editor_for_post', '__return_false'); remove_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' );
//去掉w.s.org表情调用 remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_action( 'admin_print_styles', 'print_emoji_styles' );
//屏蔽头部加载 s.w.org add_filter( 'emoji_svg_url', '__return_false' );
// 移除头部冗余代码 remove_action( 'wp_head', 'wp_generator' );// WP版本信息 remove_action( 'wp_head', 'rsd_link' );// 离线编辑器接口 remove_action( 'wp_head', 'wlwmanifest_link' );// 同上 remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );// 上下文章的url 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', 10, 0 );// 短链接 remove_action( 'wp_head', 'rest_output_link_wp_head', 10 ); remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); 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', 'wp_generator' );
//移除WordPress头部加载DNS预获取(dns-prefetch) function remove_dns_prefetch( $hints, $relation_type ) { if ( 'dns-prefetch' === $relation_type ) { return array_diff( wp_dependencies_unique_hosts(), $hints ); } return $hints; } add_filter( 'wp_resource_hints', 'remove_dns_prefetch', 10, 2 );
//移除CSS或JS的版本号后的一长串内容 if(!function_exists('cwp_remove_script_version')){ function cwp_remove_script_version( $src ){ return remove_query_arg( 'ver', $src ); } add_filter( 'script_loader_src', 'cwp_remove_script_version' ); add_filter( 'style_loader_src', 'cwp_remove_script_version' ); }
//admin bar左侧的wordpress logo和链接等 add_action( 'admin_bar_menu', 'cwp_remove_wp_logo_from_admin_bar_new', 25 ); function cwp_remove_wp_logo_from_admin_bar_new( $wp_admin_bar ) { $wp_admin_bar->remove_node( 'wp-logo' ); }
//移除WP为仪表盘(dashboard)页面加载的小工具 function cwp_remove_dashboard_widgets() { global $wp_meta_boxes; unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_drafts']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); }
//禁用 XML-RPC 接口 add_filter('xmlrpc_enabled', '__return_false');
//关闭 XML-RPC 的 pingback 端口 add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' ); function remove_xmlrpc_pingback_ping( $methods ) { unset( $methods['pingback.ping'] ); return $methods; }
//删除pingback add_filter('wp_headers', 'remove_pingback'); function remove_pingback( $headers ) { unset($headers['X-Pingback']); return $headers; }
//移除REST API和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 );
//自动TAG转内链 $match_num_from = 1; // 一个TAG标签出现几次才加链接 $match_num_to = 1; // 同一个标签加几次链接 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 = "".addcslashes($cleankeyword, '$').""; $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 . ')(?!(([^<>]*?)>)|([^>]*?))\'s' . $case; $content = preg_replace($regEx,$url,$content,$limit); $content = str_replace( '%&&&&&%', stripslashes($ex_word), $content); } } return $content; }