当前位置:小龟网 > 技术教程 > 正文内容

个人博客WordPress内容管理系统中文正式版PHP代码优化

小龟网6个月前 (03-23)技术教程143

WordPress,一个著名的免费个人博客系统在世界范围内广泛使用。 WordPress 是一个用 PHP 语言开发的博客平台。用户可以在支持 PHP 和 MySQL 数据库的服务器上建立自己的网站,或者使用 WordPress 作为内容管理系统 (CMS)。 WordPress 也是一个根据 GNU 通用公共许可证获得许可的免费开源项目。

个人博客WordPress内容管理系统中文正式版PHP代码优化  WordPress 第1张

WordPress新版必备优化代码:(未测试,使用前备份数据)

<!--添加优化代码到主题目录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' );
/*关闭程序更新提示*/
add_filter( 'pre_site_transient_update_core', function($a){ return null; });
/*关闭插件更新提示*/
add_filter('pre_site_transient_update_plugins', function($a){return null;});
/*关闭主题更新提示*/
add_filter('pre_site_transient_update_themes', function($a){return null;});
//关闭WordPress的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;
}
//禁用 pingbacks, enclosures, trackbacks
remove_action( 'do_pings', 'do_all_pings', 10 );
//去掉 _encloseme 和 do_ping 操作
remove_action( 'publish_post','_publish_post_hook',5 );
/* 禁止加载s.w.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');
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 );
/* 完全禁止REST API、移除wp-json链接 */
function lerm_disable_rest_api( $access ) {
    return new WP_Error(
        'Stop!',
        'Soooooryyyy',
        array(
            'status' => 403,
        )
    );
}
add_filter( 'rest_authentication_errors', 'lerm_disable_rest_api' );
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
/* 禁止查询网站静态资源连接版本字符 */
function _remove_script_version ( $src ){
  $parts = explode( '?', $src );
  return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );
/* 移除前端网页源代码内的头部冗余代码 */
remove_action( 'wp_head', 'feed_links_extra', 3 ); 
remove_action( 'wp_head', 'rsd_link' ); 
remove_action( 'wp_head', 'wlwmanifest_link' ); 
remove_action( 'wp_head', 'index_rel_link' ); 
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 ); 
remove_action( 'wp_head', 'wp_generator' ); 
/* 禁止新版文章编辑器加载前端样式 */
function wpassist_remove_block_library_css(){
    wp_dequeue_style( 'wp-block-library' );
} 
remove_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' );
add_action( 'wp_enqueue_scripts', 'wpassist_remove_block_library_css' );
/* 移除新版本站点健康状态面板和菜单项 */
add_action( 'admin_menu', 'remove_site_health_menu' ); 
function remove_site_health_menu(){
remove_submenu_page( 'tools.php','site-health.php' ); 
}
/* 禁用5.5版后自带的XML站点地图 */
add_filter( 'wp_sitemaps_enabled', '__return_false' );
/* 移除前后台顶部工具栏指定菜单 */
function admin_bar_item ( WP_Admin_Bar $admin_bar ) {
    $admin_bar->remove_menu('wp-logo'); //移动wp的logo
    $admin_bar->remove_menu('site-name'); //移动站点名称
    $admin_bar->remove_menu('updates'); //移动更新提示
    $admin_bar->remove_menu('comments'); //移动评论提示
    /*$admin_bar->remove_menu('new-content');    //移除新建按钮  */ 
}
add_action( 'admin_bar_menu', 'admin_bar_item', 500 );
//移除后台仪表盘站点健康状态面板
add_action('wp_dashboard_setup', 'remove_site_health_dashboard_widget');
function remove_site_health_dashboard_widget()
{
    remove_meta_box('dashboard_site_health', 'dashboard', 'normal');
}
//移除后台仪表盘菜单:站点健康状态
add_action( 'admin_menu', 'remove_site_health_menu' );    
function remove_site_health_menu(){
    remove_submenu_page( 'tools.php','site-health.php' ); 
}
//移除后台仪表盘菜单:活动、新闻
function bzg_remove_dashboard_widgets() {
    global $wp_meta_boxes;
    #移除 "活动" 
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);
    #移除 "WordPress 新闻" 
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
}
add_action('wp_dashboard_setup', 'bzg_remove_dashboard_widgets' );
//移除后台仪表盘菜单:帮助
function bzg_remove_help() {
    get_current_screen()->remove_help_tabs();
}
add_action('admin_head', 'bzg_remove_help');
 
//移除后台页面title标题的wordpress后缀
add_filter('admin_title', 'delAdminTitle', 10, 2);
function delAdminTitle($admin_title, $title){
    return $title.' ‹ '.get_bloginfo('name');
}
//移除登陆页面title标题的wordpress后缀
add_filter('login_title', 'remove_login_title', 10, 2);
function remove_login_title($login_title, $title){
    return $title.' ‹ '.get_bloginfo('name');
}
/* 彻底禁止4.4+版之后响应式图片功能及缩略图裁剪功能*/
// 禁止生成图像尺寸
function zm_customize_image_sizes( $sizes ){
    unset( $sizes[ 'thumbnail' ]);
    unset( $sizes[ 'medium' ]);
    unset( $sizes[ 'medium_large' ] );
    unset( $sizes[ 'large' ]);
    unset( $sizes[ 'full' ] );
    unset( $sizes['1536x1536'] );
    unset( $sizes['2048x2048'] );
    return $sizes;
}
 
add_filter( 'intermediate_image_sizes_advanced', 'zm_customize_image_sizes' );
 
// 禁止缩放图片尺寸
add_filter('big_image_size_threshold', '__return_false');
 
// 禁止生成其它图像尺寸
function shapeSpace_disable_other_image_sizes() {    
    // 禁止通过set_post_thumbnail_size()函数生成的图片尺寸
    remove_image_size('post-thumbnail'); 
    // 禁止添加其它图像尺寸
    remove_image_size('another-size');
}
add_action('init', 'shapeSpace_disable_other_image_sizes');
//切换经典文章编辑器(v5.x开始默认古腾堡编辑器)
add_filter('use_block_editor_for_post', '__return_false');
//替换评论用户头像链接为国内镜像加速访问
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/'
], 'cravatar.cn/', $avatar);
});
 
//取消内容转义
remove_filter('the_content', 'wptexturize');
//取消摘要转义
remove_filter('the_excerpt', 'wptexturize');
//取消评论转义
remove_filter('comment_text', 'wptexturize');
//禁止转义引号字符
remove_filter('the_content', 'wptexturize');    // 禁止英文引号转义为中文引号
 
//文章插入图片自动移除 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;
}
 
// 自适应图片删除width和height
function ludou_remove_width_height_attribute($content){
  preg_match_all('/<[img|IMG].*?src=[\'|"](.*?(?:[\.gif|\.jpg|\.png\.webp]))[\'|"].*?[\/]?>/', $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;
}
 
// 判断是否是移动设备浏览
if(wp_is_mobile()) {
   #删除文章内容中img的width和height属性
   add_filter('the_content', 'ludou_remove_width_height_attribute', 99);
}
 
/* 删除文章时删除图片附件 */
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');


💯扫描二维码推送至手机访问。

💢版权声明:本文由小龟网发布,如需转载请注明出处。

🤗作品 采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

本文链接:https://www.xiaoguiwang.net/jishuccheng/39.html

标签: WordPress
分享给朋友:

相关文章

emlog自带内容页输入密码弹窗美化HTML代码

emlog自带内容页输入密码弹窗美化HTML代码

Emlog 原生的文章访问密码输入界面还真是丑到爆为替换之前:替换之后:Emlog 程序的钩子远不如 WordPress 这么丰富,因此这一美化只能通过直接修改 Emlog代码来实现。具体的位置在 include/model/log_mod...

WordPress获取目前Post ID函数:get_the_ID

WordPress函数get_the_ID一般用在主循环The Loop中,以获取当前Post ID。也可以在文章模板、页面模板中使用,在这些页面即使主循环之外也能获取到当前页面的ID。get_the_ID()函数使用示例<?php...

WordPress怎样实行删掉文章时一起删除图片包括的附件

只需将底下的 PHP 代码加入到:themes/xxx/functions.php 底部就行了    //删除文章时删除图片附件开始     function delete_post_and_attachments($post_ID) {...

js ajax界面提示跨域请求PHP解决方案

四个代码,自己了解,万能解决的方法,header("Access-Control-Allow-Origin:*"); header("Access-Control-Allow-Methods:GET,POST...

多张照片怎么合成一张照片?微信两张照片拼成一张图教程

多张照片怎么合成一张照片?微信两张照片拼成一张图教程

导读:在生活中,我们经常在我们的手机上拍摄很多照片,但有时我们希望将两个甚至更多的照片结合到一个长的照片中进行打印或制作短视频,但我们通常会发现我们通常需要使用特殊的P图片如photoshop或meitu。软件,折腾它是非常不方便的。那么有...

星空影视IOS端看片神器 附解除伪装方法

星空影视IOS端看片神器 附解除伪装方法

本次为大家分享的是星空影视IOS端看片神器 附解除伪装方法软件介绍平时分享安卓端影视资源也比较多,今天QQ皇族馆分享一款IOS端;由于IOS应用商店上架此类APP审核都比较严格,只能通过伪装让用户下载;小编也会教大家怎么解除伪装直接使用,注...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。