feat: upgrade gravatar cdn

pull/506/head
Seaton Jiang 2022-04-30 17:33:55 +08:00
parent 3704666d5e
commit 46eec958c7
No known key found for this signature in database
GPG Key ID: B79682F6FE8D30E3
2 changed files with 60 additions and 15 deletions

View File

@ -4,7 +4,7 @@
* 核心函数
* @author Seaton Jiang <hi@seatonjiang.com>
* @license GPL-3.0 License
* @version 2022.02.20
* @version 2022.04.30
*/
// CDN 资源地址
@ -192,15 +192,25 @@ add_filter('style_loader_src', function ($href) {
return false;
});
// 替换国内 Gravatar 源
function get_https_avatar($avatar)
{
$avatar = str_replace(array("www.gravatar.com", "0.gravatar.com", "1.gravatar.com", "2.gravatar.com", "3.gravatar.com", "secure.gravatar.com"), kratos_option('g_gravatar', 'sdn.geekzu.org') ?: "secure.gravatar.com", $avatar);
$avatar = str_replace("http://", "https://", $avatar);
return $avatar;
// Gravatar 加速服务
if (kratos_option('g_replace_gravatar_url_fieldset')['g_replace_gravatar_url'] ?? true) {
function replace_gravatar_url($avatar)
{
$gravatar_server_list = array(
'geekzu' => 'sdn.geekzu.org',
'loli' => 'gravatar.loli.net',
'other' => kratos_option('g_replace_gravatar_url_fieldset')['g_custom_gravatar_server'] ?? null,
);
$gravatar_server = $gravatar_server_list[kratos_option('g_replace_gravatar_url_fieldset')['g_select_gravatar_server']] ?: 'secure.gravatar.com';
$avatar = str_replace(array('www.gravatar.com', '0.gravatar.com', '1.gravatar.com', '2.gravatar.com', '3.gravatar.com', 'secure.gravatar.com'), $gravatar_server, $avatar);
$avatar = str_replace('http://', 'https://', $avatar);
return $avatar;
}
add_filter('get_avatar', 'replace_gravatar_url');
add_filter('get_avatar_url', 'replace_gravatar_url');
}
add_filter('get_avatar', 'get_https_avatar');
add_filter('get_avatar_url', 'get_https_avatar');
// 主题更新检测
$myUpdateChecker = Puc_v4_Factory::buildUpdateChecker(

View File

@ -4,7 +4,7 @@
* 主题选项
* @author Seaton Jiang <hi@seatonjiang.com>
* @license GPL-3.0 License
* @version 2022.04.29
* @version 2022.04.30
*/
defined('ABSPATH') || exit;
@ -156,11 +156,46 @@ CSF::createSection($prefix, array(
'default' => '260',
),
array(
'id' => 'g_gravatar',
'type' => 'text',
'title' => __('Gravatar 加速', 'kratos'),
'subtitle' => __('自定义 Gravatar 头像加速地址', 'kratos'),
'default' => 'sdn.geekzu.org',
'id' => 'g_replace_gravatar_url_fieldset',
'type' => 'fieldset',
'fields' => array(
array(
'type' => 'subheading',
'content' => __('Gravatar 加速服务', 'kratos'),
),
array(
'id' => 'g_replace_gravatar_url',
'type' => 'switcher',
'title' => __('功能开关', 'kratos'),
'subtitle' => __('开启/关闭 Gravatar 加速服务功能', 'kratos'),
),
array(
'id' => 'g_select_gravatar_server',
'type' => 'select',
'title' => __('Gravatar 加速服务地址', 'kratos'),
'subtitle' => __('请选择 Gravatar 加速服务地址', 'kratos'),
'options' => array(
'loli' => __('Loli 加速服务', 'kratos'),
'geekzu' => __('极客族加速服务', 'kratos'),
'other' => __('自定义加速服务', 'kratos'),
),
'desc' => __('国内用户推荐「极客族加速服务」海外用户推荐「Loli 加速服务」。', 'kratos'),
'dependency' => array('g_replace_gravatar_url', '==', 'true'),
),
array(
'id' => 'g_custom_gravatar_server',
'type' => 'text',
'title' => __('自定义 Gravatar 加速服务地址', 'kratos'),
'subtitle' => __('请输入 Gravatar 加速服务地址', 'kratos'),
'desc' => __('直接输入网址即可,不需要协议头和最后的斜杠。', 'kratos'),
'placeholder' => 'secure.gravatar.com',
'dependency' => array('g_replace_gravatar_url|g_select_gravatar_server', '==|==', 'true|other'),
),
),
'default' => array(
'g_replace_gravatar_url' => 1,
'g_select_gravatar_server' => 'geekzu',
)
),
array(
'id' => 'g_renameother_fieldset',