feat(creator-studio): two-row masthead with site logo and user avatar
顶栏改为知乎式两行结构:第一行左侧站点 LOGO、右侧当前用户头像, 第二行只保留正文工具条并居中,同时移除「Jio / 写文章」字样。 - bootstrap payload 新增 site/viewer 身份字段(复用 jio_get_site_logo_url 与 jio_get_avatar_url,前端不拼 URL、不做权限判断) - 拆分 draft 类型、TinyMCE 块运行时、顶栏组件,index.tsx 1065 → 735 行 - 清理死代码:未调用的 keepCaretInsideCode、永远无法打开的代码语言弹窗 (setCodeLanguage 只会收到 null,codeTargetRef 从未赋值)及其样式, 以及顶栏移除后失效的 bar-left/brand/mode/save-draft/ghost/primary 规则 - 契约测试、本地预览与截图脚本同步到新 DOM Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
5f31c58df2
commit
1970db0b56
17 files changed
+602
-580
No files matched your search
@@ -127,7 +127,9 @@ final class CreatorRest {
|
||||
? (array) get_post_meta($source->ID, DomainModel::POST_META_KEY, true)
|
||||
: [];
|
||||
|
||||
$terms = $this->term_payload($settings, $source, $snapshot);
|
||||
$terms = $this->term_payload($settings, $source, $snapshot);
|
||||
$viewer = $user_id > 0 ? get_userdata($user_id) : null;
|
||||
$ident = $this->identity_payload($viewer instanceof \WP_User ? $viewer : null);
|
||||
|
||||
return [
|
||||
'sourceId' => $post_id,
|
||||
@@ -172,6 +174,40 @@ final class CreatorRest {
|
||||
'newPost' => function_exists('jio_get_new_post_url') ? jio_get_new_post_url() : '',
|
||||
'center' => function_exists('jio_get_user_center_url') ? jio_get_user_center_url('posts') : '',
|
||||
],
|
||||
'site' => $ident['site'],
|
||||
'viewer' => $ident['viewer'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 顶栏身份信息:站点 Logo 与当前用户头像。
|
||||
*
|
||||
* 只做展示,不承载权限判断;Logo 缺失时前端回退到品牌文字。
|
||||
*
|
||||
* @return array{site: array<string, string>, viewer: array<string, string>}
|
||||
*/
|
||||
private function identity_payload(?\WP_User $viewer = null): array {
|
||||
$brand = function_exists('jio_get_site_logo_text') ? (string) jio_get_site_logo_text() : '';
|
||||
$brand = $brand !== '' ? $brand : (string) get_bloginfo('name');
|
||||
|
||||
$logo = function_exists('jio_get_site_logo_url') ? trim((string) jio_get_site_logo_url()) : '';
|
||||
if ($logo === '') {
|
||||
$logo = get_template_directory_uri() . '/assets/img/logo.png';
|
||||
}
|
||||
|
||||
$avatar = $viewer instanceof \WP_User && function_exists('jio_get_avatar_url')
|
||||
? (string) jio_get_avatar_url($viewer, ['size' => 72])
|
||||
: '';
|
||||
|
||||
return [
|
||||
'site' => [
|
||||
'home' => esc_url_raw(home_url('/')),
|
||||
'name' => $brand,
|
||||
'logo' => esc_url_raw($logo),
|
||||
],
|
||||
'viewer' => [
|
||||
'avatar' => esc_url_raw($avatar),
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user