纯代码替换七牛云存储插件

WordPress

纯代码替换七牛云存储插件
最初的时候安装的七牛云存储的插件,功能非常强大,但有些功能暂时也用不上,而且秉承着插件删减的目的,用纯代码来实现 WordPress 七牛云存储。
以下是之前更改插件中的 Jquery 调用的文章。

第一步

首先将设置中的多媒体中的文件的完整 URL 地址改成七牛 CDN 的地址,例如本站的就是 static.youfencun.com,后面的/wp-content/uploads 这里根据默认上传路径更改。
纯代码替换七牛云存储插件
这样的好处就是在上传图片的同时将其上传至七牛空间,而且本地也有备份,即使本地图片删除后仍然在空间内存有。

第二步

在 function.php 中增加以下代码:

/* WordPress 七牛 CDN 代码版 */
/* ------------------------------ */
function QiNiuCDN()
{
    function Rewrite_URI($html)
    {
        /* 前面是需要用到七牛的域名,后面是需要加速的静态文件类型,使用分隔符 | 隔开即可 */
        $pattern = '/http:\\/\\/(www\\.|)youfencun\\.com\\/wp-([^"\']*?)\\.(js|css)/i';
        /* 七牛 CDN 空间地址,请自行替换成实际空间地址 */
        $replacement = 'http://static.youfencun.com/wp-$2.$3';
        $html = preg_replace($pattern, $replacement, $html);
        return $html;
    }
    if (!is_admin()) {
        ob_start("Rewrite_URI");
    }
}
add_action('init', 'QiNiuCDN');
/* ------------------------------ */
/* WordPress 七牛 CDN 代码版 */

其实这里的文件类型中只需要 css 及 js 就可以了,因为第一步的时候已经将图片同步至七牛空间加速了。

第三步

可省略,根据七牛插件的优化设置中提取的一些优化代码,可以不用。

/*优化代码*/
/********************/
////前台不加载语言包
add_filter('locale', 'wpjam_locale');
function wpjam_locale($locale)
{
    $locale = is_admin() ? $locale : 'en_US';
    return $locale;
}
////彻底关闭 pingback
add_filter('xmlrpc_methods', 'wpjam_xmlrpc_methods');
function wpjam_xmlrpc_methods($methods)
{
    $methods['pingback.ping'] = '__return_false';
    $methods['pingback.extensions.getPingbacks'] = '__return_false';
    return $methods;
}
////禁用 pingbacks, enclosures, trackbacks
remove_action('do_pings', 'do_all_pings', 10);
////去掉 _encloseme 和 do_ping 操作。
remove_action('publish_post', '_publish_post_hook', 5);
////屏蔽日志修订功能
define('WP_POST_REVISIONS', false);
////自动保存设置为 10 个小时
define('AUTOSAVE_INTERVAL', 36000);
////禁用 XML-RPC 接口
add_filter('xmlrpc_enabled', '__return_false');
////屏蔽 REST API
add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');
////禁用 Auto Embeds (oEmbed)
remove_filter('the_content', array($GLOBALS['wp_embed'], 'autoembed'), 8);
//屏蔽文章 Embed 功能
remove_action('rest_api_init', 'wp_oembed_register_route');
remove_filter('rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4);
remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
remove_filter('oembed_response_data', 'get_oembed_response_data_rich', 10, 4);
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');
////禁用 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_action('embed_head', 'print_emoji_detection_script');
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');
add_filter('emoji_svg_url', '__return_false');
//彻底关闭 WordPress 自动更新和后台更新检查
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_head 中无关紧要的代码
remove_action('wp_head', 'wp_generator');
//删除 head 中的 WP 版本号
foreach (array('rss2_head', 'commentsrss2_head', 'rss_head', 'rdf_header', 'atom_head', 'comments_atom_head', 'opml_head', 'app_head') as $action) {remove_action($action, 'the_generator');}
remove_action('wp_head', 'rsd_link');
//删除 head 中的 RSD LINK
remove_action('wp_head', 'wlwmanifest_link');
//删除 head 中的 Windows Live Writer 的适配器?
remove_action('wp_head', 'feed_links_extra', 3);
//删除 head 中的 Feed 相关的 link
remove_action('wp_head', 'index_rel_link');
//删除 head 中首页,上级,开始,相连的日志链接
remove_action('wp_head', 'parent_post_rel_link', 10);
remove_action('wp_head', 'start_post_rel_link', 10);
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10);
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
//删除 head 中的 shortlink
remove_action('wp_head', 'rest_output_link_wp_head', 10);
// 删除头部输出 WP RSET API 地址
remove_action('template_redirect', 'wp_shortlink_header', 11);
//禁止短链接 Header 标签。
remove_action('template_redirect', 'rest_output_link_header', 11);
// 禁止输出 Header Link 标签。
////移除 WordPress 的 Admin Bar
add_filter('show_admin_bar', '__return_false');
////禁止使用 admin 用户名尝试登录
add_filter('wp_authenticate', 'wpjam_no_admin_user');
function wpjam_no_admin_user($user){if ($user == 'admin') {exit;}}
add_filter('sanitize_user', 'wpjam_sanitize_user_no_admin', 10, 3);
function wpjam_sanitize_user_no_admin($username, $raw_username, $strict)
{if ($raw_username == 'admin' || $username == 'admin') {exit;}return $username;}
////移除头部 wp-json 标签和 HTTP header 中的 link
remove_action('wp_head', 'rest_output_link_wp_head', 10);
remove_action('template_redirect', 'wp_shortlink_header', 11, 0);
//禁止 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);
/* 禁用 wp-cron */
define('DISABLE_WP_CRON', true);
/* 删除所有修订版本 */
//$wpdb->query( "DELETE FROM $wpdb->posts WHERE post_type = 'revision'" );
/* 需要时打开即可 */
//移除 WordPress 加载的 JS 和 CSS 链接中的版本号
/********************/
function wpdaxue_remove_cssjs_ver( $src ) {
	if( strpos( $src, 'ver='. get_bloginfo( 'version' ) ) )
//增加. get_bloginfo( 'version' )只移除添加 WP 的版本号,其他版本号不移除。
		$src = remove_query_arg( 'ver', $src );
	return $src;
}
add_filter( 'style_loader_src', 'wpdaxue_remove_cssjs_ver', 999 );
add_filter( 'script_loader_src', 'wpdaxue_remove_cssjs_ver', 999 );
/********************/
//移除 WordPress 加载的 JS 和 CSS 链接中的版本号
/*优化代码*/

以上,全文完。

© 声明:本站原创文章采用BY-NC-SA创作共用协议,转载时请标明本文地址;非原创(转载)文章版权归原作者所有。

RECENT POSTS

Stay Hungry. Stay Foolish.

数据库查询次数:11次,页面生成时间:0.030秒。