WordPress程序/functions.php收集整理的各种自定义优化代码分享
WordPress程序/functions.php收集整理的各种自定义优化代码分享
<!--以下代码为主题目录下functions.php文件内代码!-->// 彻底关闭自动更新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' );// 移除WP-JSON链接remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );remove_action( 'template_redirect', 'rest_output_link_header', 11 );// 禁止后台显示升级核心提示add_filter('pre_site_transient_update_core', create_function('$a', "return null;"));// 禁止后台显示插件升级提示add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;"));// 禁止后台显示主题升级提示add_filter('pre_site_transient_update_themes', create_function('$a', "return null;"));// 把fonts.googleapis.com替换为fonts.useso.comfunction bf_google_font($content){return str_replace('fonts.googleapis.com', 'fonts.useso.com', $content);return str_replace('ajax.googleapis.com', 'ajax.useso.com', $content);}// 关闭WordPress的XML-RPC功能(建议清空网站根目录下下xmlrpc.php内容)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;}// 禁止后台加载谷歌字体function wp_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', 'wp_remove_open_sans_from_wp_core' );// 禁用Open Sansclass Disable_Google_Fonts {public function __construct() {add_filter( 'gettext_with_context', array( $this, 'disable_open_sans' ), 888, 4 );}public function disable_open_sans( $translations, $text, $context, $domain ) {if ( 'Open Sans font: on or off' == $context && 'on' == $text ) {$translations = 'off';}return $translations;}}$disable_google_fonts = new Disable_Google_Fonts;// 禁用 WordPress 的 JSON REST APIadd_filter('json_enabled', '__return_false');add_filter('json_jsonp_enabled', '__return_false');// 阻止WordPress的PingBack端口function no_self_ping( &$links ) {$home = get_option( 'home' );foreach ( $links as $l => $link )if ( 0 === strpos( $link, $home ) )unset($links[$l]);}add_action( 'pre_ping', 'no_self_ping' );// 屏蔽XML-RPC(pingback)功能,阻止pingback端口add_filter('xmlrpc_enabled', '__return_false');add_filter('xmlrpc_methods', 'remove_xmlrpc_pingback_ping');function remove_xmlrpc_pingback_ping( $methods ) {unset( $methods['pingback.ping'] );return $methods;}// 通过多说服务器加速Gravatar头像function mytheme_get_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', 'mytheme_get_avatar', 10, 3 );// 替换前端公共库jQuery到国内,加快后台访问function my_modify_jquery() {if (!is_admin()) {wp_deregister_script('jquery');wp_deregister_script('jquery-form');wp_register_script('jquery', ('https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js'), false, null, true); wp_register_script('jquery-form', ('https://cdn.bootcss.com/jquery.form/4.2.2/jquery.form.min.js'), array(jquery), null, true);}}// 替换评论用户头像链接为国内镜像加速访问add_filter('get_avatar', function ($avatar) {return str_replace(['www.gravatar.com/avatar/','0.gravatar.com/avatar/','1.gravatar.com/avatar/','2.gravatar.com/avatar/','secure.gravatar.com/avatar/','cn.gravatar.com/avatar/'], 'sdn.geekzu.org/avatar/', $avatar);});// 禁用embeds功能function disable_embeds_init() {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关闭自动更新版本升级功能且保留提醒;add_filter( 'automatic_updater_disabled', '__return_true' );// 禁止WordPress头部加载境外域名s.w.orgfunction 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 );// 解决后台加载ajax.googleapis无法访问function hc_cdn_callback($buffer) {return str_replace('ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/themes/smoothness/jquery-ui.css', 'cdn.bootcss.com/jqueryui/1.12.1/jquery-ui.min.css', $buffer);}function hc_buffer_start() {ob_start("hc_cdn_callback");}function izt_buffer_end() {ob_end_flush();}add_action('init', 'hc_buffer_start');add_action('shutdown', 'hc_buffer_end');// 减少后台admin-ajax.php加载时间的方法add_action( 'init', 'my_deregister_heartbeat', 1 );function my_deregister_heartbeat() {global $pagenow;if ( 'post.php' != $pagenow && 'post-new.php' != $pagenow )wp_deregister_script('heartbeat');}// 更改作者存档前缀add_action('init', 'wpdaxue_change_author_base');function wpdaxue_change_author_base() {global $wp_rewrite;$author_slug = '500'; // 更改前缀为500$wp_rewrite->author_base = $author_slug;}// 更改作者链接,防止会员ID泄露;add_filter( 'author_link', 'modify_author_link', 10, 1 ); function modify_author_link( $link ) { $link = 'https://www.baidu.com/'; //修改为自己需要的URLreturn $link; }// 禁用古腾堡方法一// 1.禁用WP5.0+古滕堡反人类编辑器,使用Gutenberg模块经典文章编辑器;add_filter('use_block_editor_for_post', '__return_false');// 2.禁止WordPress新版本文章编辑器前端加载样式文件remove_action('wp_enqueue_scripts', 'wp_common_block_scripts_and_styles');// 禁用古腾堡方法二if( wb_opt('gutenberg_switch') ) {add_filter('use_block_editor_for_post_type',function($is_user,$post_type){return false;},10,2);//WordPress 5.0+移除 block-library CSSadd_action( 'wp_enqueue_scripts', 'tonjay_remove_block_library_css', 100 );function tonjay_remove_block_library_css() {wp_dequeue_style( 'wp-block-library' );}}// 自动给所有文章的外部链接添加nofollow属性(有助于SEO方面)add_filter('the_content','the_content_nofollow',999);function the_content_nofollow($content){preg_match_all('/href="/go.php?url=KC4qPyk=" rel="external nofollow" /',$content,$matches);if($matches){foreach($matches[1] as $val){if( strpos($val,home_url())===false ) $content=str_replace("href=\"$val\"", "href=\"$val\" rel=\"external nofollow\" ",$content);}}return $content;}// 发布文章主动推送到百度,加快收录保护原创,WordPress通用方式if(!function_exists('Baidu_Submit')){function Baidu_Submit($post_ID) {$WEB_TOKEN = ''; //这里请换成你的网站的百度主动推送的token值$WEB_DOMAIN = get_option('home');// 已成功推送的文章不再推送if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;$url = get_permalink($post_ID);$api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;$request = new WP_Http;$result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );$result = json_decode($result['body'],true);// 如果推送成功则在文章新增自定义栏目Baidusubmit,值为1if (array_key_exists('success',$result)) {add_post_meta($post_ID, 'Baidusubmit', 1, true);}}add_action('publish_post', 'Baidu_Submit', 0);}// 文章插入图片自动移除 img 的 width、height、class 属性;add_filter( 'post_thumbnail_html', 'fanly_remove_images_attribute', 10 );add_filter( 'image_send_to_editor', 'fanly_remove_images_attribute', 10 );function fanly_remove_images_attribute( $html ) {//$html = preg_replace( '/(width|height)="\d*"\s/', "", $html );$html = preg_replace( '/width="(\d*)"\s+height="(\d*)"\s+class="[^"]*"/', "", $html );$html = preg_replace( '/ /', "", $html );return $html;}// 删除WordPress新版本站点健康状态面板和菜单项add_action( 'admin_menu', 'remove_site_health_menu' ); function remove_site_health_menu(){remove_submenu_page( 'tools.php','site-health.php' ); }// 删除头部冗余代码function my_filter_head(){remove_action( 'wp_head','_admin_bar_bump_cb');remove_action( 'wp_head','feed_links_extra',3 );remove_action( 'wp_head','feed_links',2 );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',10,0 );remove_action( 'wp_head','wp_generator' );}add_action('get_header','my_filter_head');// 删除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_filter( 'the_content_feed', 'wp_staticize_emoji');remove_filter( 'comment_text_rss', 'wp_staticize_emoji');remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email');remove_action( 'wp_head', 'feed_links_extra', 3 ); //去除评论feedremove_action( 'wp_head', 'feed_links', 2 ); //去除文章feedremove_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 ); //移除后面文章的urlremove_action( 'wp_head', 'start_post_rel_link', 10, 0 ); //移除最开始文章的urlremove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );//自动生成的短链接remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); ///移除相邻文章的urlremove_action( 'wp_head', 'wp_generator' ); // 移除版本号// 自适应图片删除width和heightfunction ludou_remove_width_height_attribute($content){preg_match_all('/<[img|IMG].*?src=[\'|"](.*?(?:[\.gif|\.jpg|\.png\.bmp]))[\'|"].*?[\/]?>/', $content, $images);if(!empty($images)) {foreach($images[0] as $index => $value){$new_img = preg_replace('/(width|height)="\d*"\s/', "", $images[0][$index]);$content = str_replace($images[0][$index], $new_img, $content);}}return $content;}// 删除默认缩略图function v7v3_remove_image_size($sizes) {unset( $sizes['small'] );unset( $sizes['medium'] );unset( $sizes['large'] );return $sizes;}add_filter('image_size_names_choose', 'v7v3_remove_image_size');// 删除文章时删除图片附件function delete_post_and_attachments($post_ID) {global $wpdb;// 删除特色图片$thumbnails = $wpdb->get_results( "SELECT * FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" ); foreach ( $thumbnails as $thumbnail ) {wp_delete_attachment( $thumbnail->meta_value, true ); }// 删除图片附件$attachments = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_parent = $post_ID AND post_type = 'attachment'" );foreach ( $attachments as $attachment ) {wp_delete_attachment( $attachment->ID, true ); } $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" ); }add_action('before_delete_post', 'delete_post_and_attachments');// 禁用自动生成的图片尺寸function shapeSpace_disable_image_sizes($sizes) {unset($sizes['thumbnail']); // disable thumbnail sizeunset($sizes['medium']); // disable medium sizeunset($sizes['large']); // disable large sizeunset($sizes['medium_large']); // disable medium-large sizeunset($sizes['1536x1536']); // disable 2x medium-large sizeunset($sizes['2048x2048']); // disable 2x large sizereturn $sizes;}add_action('intermediate_image_sizes_advanced', 'shapeSpace_disable_image_sizes');// 禁用缩放尺寸add_filter('big_image_size_threshold', '__return_false');// 禁用其他图片尺寸function shapeSpace_disable_other_image_sizes() {remove_image_size('post-thumbnail'); // disable images added via set_post_thumbnail_size() remove_image_size('another-size'); // disable any other added image sizes}add_action('init', 'shapeSpace_disable_other_image_sizes');// 防止网站遭受恶意URL请求if(strlen($_SERVER['REQUEST_URI']) > 366 ||strpos($_SERVER['REQUEST_URI'], "eval(") ||strpos($_SERVER['REQUEST_URI'], "base64")) {@header("HTTP/1.1 414 Request-URI Too Long");@header("Status: 414 Request-URI Too Long");@header("Connection: Close");@exit;}// 防止CC攻击session_start(); //开启session$timestamp = time();$ll_nowtime = $timestamp;// 判断session是否存在,如果存在从session取值,如果不存在进行初始化赋值!if ($_SESSION){$ll_lasttime = $_SESSION['ll_lasttime'];$ll_times = $_SESSION['ll_times'] + 1;$_SESSION['ll_times'] = $ll_times;}else{$ll_lasttime = $ll_nowtime;$ll_times = 1;$_SESSION['ll_times'] = $ll_times;$_SESSION['ll_lasttime'] = $ll_lasttime;}// 中文名图片上传改名function tin_custom_upload_name($file){if(preg_match('/[一-龥]/u',$file['name'])):$ext=ltrim(strrchr($file['name'],'.'),'.');$file['name']=preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])).'_'.date('Y-m-d_H-i-s').'.'.$ext;endif;return $file;}add_filter('wp_handle_upload_prefilter','tin_custom_upload_name',5,1);// 为网站全部页面添加canonical标签function cx_archive_link( $paged = true ) {$link = false;if ( is_front_page() ) {$link = home_url( '/' );} else if ( is_home() && "page" == get_option('show_on_front') ) {$link = get_permalink( get_option( 'page_for_posts' ) );} else if ( is_tax() || is_tag() || is_category() ) {$term = get_queried_object();$link = get_term_link( $term, $term->taxonomy );} else if ( is_post_type_archive() ) {$link = get_post_type_archive_link( get_post_type() );} else if ( is_author() ) {$link = get_author_posts_url( get_query_var('author'), get_query_var('author_name') );} else if ( is_single() ) {$link = get_permalink( $id );} else if ( is_archive() ) {if ( is_date() ) {if ( is_day() ) {$link = get_day_link( get_query_var('year'), get_query_var('monthnum'), get_query_var('day') );} else if ( is_month() ) {$link = get_month_link( get_query_var('year'), get_query_var('monthnum') );} else if ( is_year() ) {$link = get_year_link( get_query_var('year') );}}}if ( $paged && $link && get_query_var('paged') > 1 ) {global $wp_rewrite;if ( !$wp_rewrite->using_permalinks() ) {$link = add_query_arg( 'paged', get_query_var('paged'), $link );} else {$link = user_trailingslashit( trailingslashit( $link ) . trailingslashit( $wp_rewrite->pagination_base ) . get_query_var('paged'), 'archive' );}}echo '';}add_action('wp_head', 'cx_archive_link');// WordPress程序自定义全角转半角$qmr_work_tags = array(//'the_title', // 标题'the_content', // 内容 *//'the_excerpt', // 摘要 *//'single_post_title', // 单篇文章标题//'comment_author', // 评论作者//'comment_text', // 评论内容 *//'link_description', // 友链描述(已弃用,但还很常用)//'bloginfo', // 博客信息//'wp_title', // 网站标题//'term_description', // 项目描述//'category_description', // 分类描述//'widget_title', // 小工具标题//'widget_text' // 小工具文本);foreach ( $qmr_work_tags as $qmr_work_tag ) {remove_filter ($qmr_work_tag, 'wptexturize');}// 限制用户进入后台控制面板界面function baw_no_admin_access() {if( !current_user_can( 'administrator' ) ) {wp_redirect( home_url() );die();}}add_action( 'admin_init', 'baw_no_admin_access', 1 );// SMTP发送邮件function mail_smtp( $phpmailer ){$phpmailer->From = 'admin@qq.com'; //发件人邮箱$phpmailer->FromName = '腾讯网'; //发件人名称$phpmailer->Host = 'smtp.qq.com'; //SMTP服务器地址$phpmailer->Port = '465'; //SMTP端口,常用的有25、465、587$phpmailer->SMTPSecure = 'ssl'; //SMTP加密方式,常用的有SSL/TLS,port=25留空,465为ssl$phpmailer->Username = 'admin@qq.com'; //邮箱帐号$phpmailer->Password = '0123456789'; //邮箱密码$phpmailer->IsSMTP(); //使用SMTP发送$phpmailer->SMTPAuth = true; //启用SMTPAuth服务}add_action('phpmailer_init','mail_smtp');//增加后台用户管理显示注册时间和IP信息-开始add_action( 'user_register', 'log_ip' );function log_ip($user_id){$ip = $_SERVER['REMOTE_ADDR'];update_user_meta( $user_id, 'signup_ip', $ip );}add_action( 'wp_login', 'insert_last_login' );function insert_last_login( $login ) {global $user_id;$user = get_userdatabylogin( $login );update_user_meta( $user->ID, 'last_login', current_time( 'mysql' ) );$last_login_ip = $_SERVER['REMOTE_ADDR'];update_user_meta( $user->ID, 'last_login_ip', $last_login_ip );}add_filter('manage_users_columns', 'add_user_additional_column');function add_user_additional_column($columns) {//$columns['user_nickname'] = '用户昵称';//$columns['user_url'] = '用户网站';$columns['reg_time'] = '注册时间';$columns['signup_ip'] = '注册IP';$columns['last_login'] = '最后登录时间';$columns['last_login_ip'] = '最后登录IP';unset($columns['name']);//移除姓名这一栏,如果需要保留,注释这行即可;return $columns;}add_action('manage_users_custom_column', 'show_user_additional_column_content', 10, 3);function show_user_additional_column_content($value, $column_name, $user_id) {$user = get_userdata( $user_id );//用户昵称//if ( 'user_nickname' == $column_name )//return $user->nickname;//用户网站//if ( 'user_url' == $column_name )//return ''.$user->user_url.'';//注册时间if('reg_time' == $column_name ){return get_date_from_gmt( $user->user_registered );}//注册IPif ('signup_ip' == $column_name && $user->signup_ip ){return get_user_meta( $user->ID, 'signup_ip', true );}//最后登录时间if ('last_login' == $column_name && $user->last_login ){return get_user_meta( $user->ID, 'last_login', true );}//最后登录IPif ('last_login_ip' == $column_name && $user->last_login_ip ){return get_user_meta( $user->ID, 'last_login_ip', true );}return $value;}//默认按照注册时间排序add_filter( "manage_users_sortable_columns", 'cmhello_users_sortable_columns' );function cmhello_users_sortable_columns($sortable_columns){$sortable_columns['reg_time'] = 'reg_time';return $sortable_columns;}add_action( 'pre_user_query', 'cmhello_users_search_order' );function cmhello_users_search_order($obj){if(!isset($_REQUEST['orderby']) || $_REQUEST['orderby']=='reg_time' ){if( !in_array($_REQUEST['order'],array('asc','desc')) ){$_REQUEST['order'] = 'desc';}$obj->query_orderby = "ORDER BY user_registered ".$_REQUEST['order']."";}}//增加后台用户管理显示注册时间和IP信息-结束
上一篇:Modown 付费下载WordPress主题使用教程
栏 目:WordPress
本文标题:WordPress程序/functions.php收集整理的各种自定义优化代码分享
本文地址:https://nb.sd.cn/WordPress/265.html
您可能感兴趣的文章
- 07-01为什么wordpress很吃服务器资源
- 06-30WordPress网站优化插件推荐-极速毫秒级响应
- 06-30WordPress程序/functions.php收集整理的各种自定义优化代码分享
- 06-30Modown 付费下载WordPress主题使用教程
- 06-25不用 WooCommerce 插件怎么做 B2B 外贸网站
- 06-25WordPress 子目录安装 Nginx 配置
- 06-25WordPress 的图片处理
- 06-25WordPress 在 404 页面显示首页模板问题的修复
- 06-25WordPress 开发的坑
- 06-25wp_reset_postdata() 有什么作用
阅读排行
推荐教程
- 06-25wp_reset_postdata() 有什么作用
- 06-25WordPress 如何查看钩子和过滤器的执行顺序
- 06-2520 个 WordPress 常用钩子介绍
- 06-25WordPress 怎么展示友情链接
- 06-25WordPress 常用函数
- 06-25WordPress 默认主题代码设置
- 06-25WordPress 打开很慢的解决方案
- 06-25WordPress 过滤器 (filters) 大全
- 06-30WordPress网站优化插件推荐-极速毫秒级响应
- 06-25WordPress禁用 emoji 时,后台不能禁用问题的解决