<!--以下代码为主题目录下 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;")); // 把 googlefonts.admincdn.com 替换为 fonts.useso.com function bf_google_font($content) { return str_replace('googlefonts.admincdn.com', 'fonts.useso.com', $content); return str_replace('googleajax.admincdn.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 Sans class 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 API add_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.org 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 ); // 解决后台加载 ajax.googleapis 无法访问 function hc_cdn_callback($buffer) { return str_replace('googleajax.admincdn.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/'; //修改为自己需要的 URL return $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 CSS add_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,值为 1 if (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 ); //去除评论 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' ); // 移除版本号 // 自适应图片删除 width 和 height function 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 size unset($sizes['medium']); // disable medium size unset($sizes['large']); // disable large size unset($sizes['medium_large']); // disable medium-large size unset($sizes['1536x1536']); // disable 2x medium-large size unset($sizes['2048x2048']); // disable 2x large size return $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');
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。