WordPress | 常用优化代码

  • 内容
  • 相关

WordPress,全球广泛使用的知名免费开源网站博客程序。WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设自己的网站,也可以把WordPress 当作一个内容管理系统(CMS)来使用。WordPress 还是一个免费的开源项目,在GNU通用公共许可证下授权发布。

优化代码

添加优化代码到主题目录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');

新版变化

v5.8.2

这只是个个安全维护版本,修复1个安全漏洞,修正2处函数调用错误。

https://wordpress.org/news/




  文件名称:WordPress

  更新时间:2021

  下载声明:本站默认解压密码(www.52linglong.com)网络资源来自网络收集或本人原创,转载请注明出处!若资源侵犯了你的版权,请联系博主,我们会在24H内删除侵权资源!

立即下載

本文标签: WordPress

版权声明:若无特殊注明,本文皆为《阿猿》原创,转载请保留文章出处。

本文链接:WordPress | 常用优化代码 - https://www.52linglong.com/skill/WordPress.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注