diff --git a/assets/admin/src/schema/sections/global/logo.js b/assets/admin/src/schema/sections/global/logo.js
index 313138cf..16eb82dd 100644
--- a/assets/admin/src/schema/sections/global/logo.js
+++ b/assets/admin/src/schema/sections/global/logo.js
@@ -1,6 +1,7 @@
const themeRoot = typeof window !== 'undefined' && window.jioAdminData?.themeUri
? String(window.jioAdminData.themeUri).replace(/\/$/, '')
: ''
+const defaultLogo = themeRoot ? `${themeRoot}/assets/img/logo.png` : ''
const defaultFavicon = themeRoot ? `${themeRoot}/assets/img/favicon.png` : ''
export const logoSchema = {
@@ -9,8 +10,8 @@ export const logoSchema = {
icon: 'fa fas fa-image',
description: '管理站点 Logo、站点图标和品牌标识。',
defaults: {
- site_logo: '',
- site_logo_dark: '',
+ site_logo: defaultLogo,
+ site_logo_dark: defaultLogo,
site_favicon: defaultFavicon,
site_icon: defaultFavicon,
logo_text: '',
@@ -21,8 +22,8 @@ export const logoSchema = {
title: 'Logo 设置',
icon: 'fa fas fa-image',
fields: [
- { key: 'site_logo', label: '站点 Logo', type: 'media', help: '建议尺寸 300x80,支持 PNG/SVG 透明背景' },
- { key: 'site_logo_dark', label: '暗色模式 Logo', type: 'media', help: '暗色模式下显示的 Logo,留空则使用默认 Logo' },
+ { key: 'site_logo', label: '站点 Logo', type: 'media', default: defaultLogo, help: '建议尺寸 300x80,支持 PNG/SVG 透明背景' },
+ { key: 'site_logo_dark', label: '暗色模式 Logo', type: 'media', default: defaultLogo, help: '暗色模式下显示的 Logo,留空则使用默认 Logo' },
{ key: 'logo_text', label: 'Logo 文字', type: 'input', placeholder: '当无 Logo 图片时显示的文字', help: '同时作为首页标题和 alt 文本使用' },
],
},
diff --git a/assets/icons/default-logo.svg b/assets/icons/default-logo.svg
deleted file mode 100644
index 1b938713..00000000
--- a/assets/icons/default-logo.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/assets/img/logo_dark.png b/assets/img/logo_dark.png
deleted file mode 100644
index 759dd1b3..00000000
Binary files a/assets/img/logo_dark.png and /dev/null differ
diff --git a/src/Admin/Schema/GlobalSchema.php b/src/Admin/Schema/GlobalSchema.php
index 52a41290..4292f4c1 100644
--- a/src/Admin/Schema/GlobalSchema.php
+++ b/src/Admin/Schema/GlobalSchema.php
@@ -156,8 +156,8 @@ class GlobalSchema {
'option_key' => 'jio_settings',
'groups' => [
['key' => 'logo', 'title' => 'Logo 设置', 'fields' => [
- ['key' => 'site_logo', 'label' => '站点 Logo', 'type' => 'media', 'default' => ''],
- ['key' => 'site_logo_dark', 'label' => '暗色模式 Logo', 'type' => 'media', 'default' => ''],
+ ['key' => 'site_logo', 'label' => '站点 Logo', 'type' => 'media', 'default' => get_template_directory_uri() . '/assets/img/logo.png'],
+ ['key' => 'site_logo_dark', 'label' => '暗色模式 Logo', 'type' => 'media', 'default' => get_template_directory_uri() . '/assets/img/logo.png'],
['key' => 'logo_text', 'label' => 'Logo 文字', 'type' => 'input', 'default' => ''],
]],
['key' => 'favicon', 'title' => '站点图标', 'fields' => [
diff --git a/src/Admin/Schema/SchemaPageDisplay.php b/src/Admin/Schema/SchemaPageDisplay.php
index 964b1529..32ff9bf0 100644
--- a/src/Admin/Schema/SchemaPageDisplay.php
+++ b/src/Admin/Schema/SchemaPageDisplay.php
@@ -83,7 +83,7 @@ class SchemaPageDisplay {
self::field('fcode_template', '页脚布局模板选择', 'image_select', 'template_1', ['previewWidth' => 240, 'options' => [['label' => '模板一', 'value' => 'template_1', 'image' => self::asset('assets/images/footer/fcode_template_1.png')]]]),
self::field('footer_t1_m_s', '版块一移动端显示', 'switcher', false),
self::field('footer_t1_img', '日间模式图片', 'upload', $img . 'logo.png'),
- self::field('footer_t1_img_dark', '夜间模式图片', 'upload', $img . 'logo_dark.png'),
+ self::field('footer_t1_img_dark', '夜间模式图片', 'upload', $img . 'logo.png'),
self::field('footer_t1_t', '首行文字', 'text', ''),
self::field('fcode_t1_code', '更多内容', 'textarea', 'Jio 主题专为博客、自媒体、资讯类的网站设计开发,简约优雅的设计风格,全面的前端用户功能,简单的模块化配置,欢迎您的体验', ['sanitize_type' => 'html', 'rows' => 3]),
self::field('fcode_t2_code_1', '版块二第一行', 'textarea', '友链申请' . "\n" . '免责声明' . "\n" . '广告合作' . "\n" . '关于我们', ['sanitize_type' => 'html', 'rows' => 4]),
diff --git a/src/Settings/AuthReader.php b/src/Settings/AuthReader.php
index 837edd31..239c5a44 100644
--- a/src/Settings/AuthReader.php
+++ b/src/Settings/AuthReader.php
@@ -20,15 +20,10 @@ trait AuthReader {
return !self::close_signup();
}
- /** 主题内置默认图片 URL */
- private static function default_asset_url(string $filename): string {
- return get_template_directory_uri() . '/assets/icons/' . $filename;
- }
-
/** 获取 Logo URL(留空时使用内置默认) */
public static function logo_url(): string {
$url = trim((string) self::get_value('site_logo', ''));
- return $url !== '' ? $url : self::default_asset_url('default-logo.svg');
+ return $url !== '' ? $url : get_template_directory_uri() . '/assets/img/logo.png';
}
/** 获取暗色模式 Logo URL(留空时跟随浅色模式) */
diff --git a/tests/widget-system/icon-picker-contract.test.cjs b/tests/widget-system/icon-picker-contract.test.cjs
index 625d4e43..22992334 100644
--- a/tests/widget-system/icon-picker-contract.test.cjs
+++ b/tests/widget-system/icon-picker-contract.test.cjs
@@ -164,10 +164,10 @@ test('brand icons render despite the legacy fa-fab double prefix', () => {
});
test('icon assets are consolidated and dead icon assets are gone', () => {
- for (const file of ['assets/icons/upload-add.svg', 'assets/icons/default-favicon.svg', 'assets/icons/default-logo.svg', 'assets/icons/playing.svg', 'assets/icons/user-certification.svg']) {
+ for (const file of ['assets/icons/upload-add.svg', 'assets/icons/default-favicon.svg', 'assets/icons/playing.svg', 'assets/icons/user-certification.svg']) {
assert.ok(fs.existsSync(path.join(root, file)), `${file} exists`);
}
- for (const file of ['assets/img/upload-add.svg', 'assets/img/vip-1.svg', 'assets/img/vip-2.svg', 'assets/img/404.svg', 'assets/img/msg-system.svg', 'assets/fonts/img-code.ttf', 'assets/js/runtime/gutenberg-extend.js', 'assets/fontawesome5/webfonts/fa-solid-900.ttf']) {
+ for (const file of ['assets/img/upload-add.svg', 'assets/img/logo_dark.png', 'assets/icons/default-logo.svg', 'assets/img/vip-1.svg', 'assets/img/vip-2.svg', 'assets/img/404.svg', 'assets/img/msg-system.svg', 'assets/fonts/img-code.ttf', 'assets/js/runtime/gutenberg-extend.js', 'assets/fontawesome5/webfonts/fa-solid-900.ttf']) {
assert.ok(!fs.existsSync(path.join(root, file)), `${file} removed`);
}
const mainCss = read('assets/css/main.css');