<?php /** * Plugin Name: Gravatar 镜像源加速器 * Plugin URI: https://xiaozhao233.top/mirror-wp-plugin/#Gravatar * Description: Gravatar 头像在中国大陆地区无法稳定访问,解决办法就是使用可用的 Gravatar 镜像源替换无法访问的官方源,本插件可针对中国大陆地区网站对 Gravatar 头像服务进行替换加速。我们收录了多个可用镜像源供您选择。当然,您也可以使用自己搭建的镜像源。 * Version: 1.0 * Author: 中国的小赵 * Author URI: https://xiaozhao233.top/ */ //主体模块 //判断是否为后台,调用show_menu函数 if (is_admin()){ add_action('admin_menu','show_menu'); } //注册插件设置页 function show_menu(){ add_options_page('Gravatar 镜像源加速器设置','Gravatar 镜像源',1,__FILE__, 'gravatar_setting_menu'); } //插件设置页 function gravatar_setting_menu() { ?> <div class="header_title"> <h1>Gravatar 镜像源加速器插件 | ⚙设置</h1> </div> <div class="gravatar_mirror_domain_setting"> <h2>镜像源地址设置</h2> <form method="post" action="options.php"> <?php wp_nonce_field('update-options');//这行代码用来保存表单中内容到数据库?> <input type="text" name="gravatar_mirror_domain" placeholder="Gravatar 镜像源地址" value="<?php echo get_option('gravatar_mirror_domain');?>"> <input type="hidden" name="action" value="update"/> <input type="hidden" name="page_options" value="gravatar_mirror_domain"/> <input type="submit" value="保存" class="button-primary"/> <h3><strong>注意:</strong>请仅输入域名,本人技术不行,多一个 "/" 都会出错</h3> </form> </div> <br/> <div class="mirror-list"> <h2>可用镜像源列表,请自行复制进上方输入框</h2> <?php //从XiaoZhao服务器获取最新的镜像列表供选择 echo file_get_contents("https://xiaozhao233.top/mirror-wp-plugin/api/mirror-list/index.php?type=gravatar&date=".date("Ymd")); ?> </div> <div class="footer_copyright_info"> <h4>Copyright©2022. <strong><a href="https://xiaozhao233.top/">中国的小赵</a></strong>. All Right Reserved.</h4> <a href="https://afdian.net/a/xiaozhao233"><img src="https://s1.slb.icu/contact/aifadian/button-purple.png" height="100px"/></a> </div> <?php } //Gravatar 头像加速模块 function Gravatar($avatar) { $avatar = str_replace(array("0.gravatar.com","1.gravatar.com","www.gravatar.com","2.gravatar.com","secure.gravatar.com","s.gravatar.com","cn.gravatar.com"),get_option('gravatar_mirror_domain'),$avatar); return $avatar; } function Gravatar_start() { ob_start("Gravatar"); } function Gravatar_end() { ob_end_flush(); } add_action('init', 'Gravatar_start'); add_action('shutdown', 'Gravatar_end');