feat(creator-studio): 图片宽度四档与作者行
- 通过 editor.BlockEdit 过滤器给 core/image 增加「半屏 / 中等 / 通栏 / 全宽」 四档宽度,选中图片时出现在区块工具条;宽度写入 className 并序列化到 post_content,前台样式即可生效,无需自定义区块或额外元数据 - 前台样式:半屏靠左 50%,中等 72%,通栏跟随正文行宽,全宽突破行宽但受容器 内边距约束;移动端半屏与全宽回退为整行,避免横向滚动 - 新增作者行(头像 + 昵称 + 身份说明),数据由 CreatorRest::author_payload() 从服务端给出,前端不自行拼装;无昵称时整行不渲染,头像缺失时回退首字占位 - 作者行放在摘要之后、正文之前 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
79909f449e
commit
f5e9420266
11 files changed
+680
-39
No files matched your search
@@ -1 +1 @@
|
||||
<?php return array('dependencies' => array('react', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-data', 'wp-element', 'wp-i18n', 'wp-wordcount'), 'version' => '82caafe73e40bfbf13d5');
|
||||
<?php return array('dependencies' => array('react', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-wordcount'), 'version' => '71ff9994e44c86df3517');
|
||||
@@ -1 +1 @@
|
||||
.jio-page-submit{background:#fafbfa}.jio-page-submit .float-btn,.jio-page-submit .footer,.jio-page-submit .footer-tabbar,.jio-page-submit .header,.jio-page-submit .jio-float-buttons{display:none!important}.jio-page-submit #main-content.container{max-width:none;padding:0}#jio-creator-studio.is-ready{display:block}.jio-creator{--jc-ink:#243330;--jc-ink-soft:#5c6b66;--jc-paper:#fafbfa;--jc-line:#e2e9e5;--jc-accent:#267665;--jc-accent-strong:#1d5f52;--jc-warn:#b4573f;--jc-bar:60px;-webkit-font-smoothing:antialiased;background:var(--jc-paper);color:var(--jc-ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;min-height:100vh;min-height:100dvh}.jio-creator *,.jio-creator :after,.jio-creator :before{box-sizing:border-box}.jio-creator button{color:inherit;font:inherit}.jio-creator__bar{align-items:center;backdrop-filter:blur(10px);background:rgba(250,251,250,.92);border-bottom:1px solid var(--jc-line);display:flex;gap:16px;height:var(--jc-bar);padding:0 clamp(16px,4vw,40px);position:sticky;top:0;z-index:30}.jio-creator__back{align-items:center;color:var(--jc-ink-soft);display:inline-flex;gap:6px;text-decoration:none}.jio-creator__back:focus-visible,.jio-creator__back:hover{color:var(--jc-accent)}.jio-creator__brand{color:var(--jc-ink-soft);font-size:13px;letter-spacing:.06em;margin-right:auto}.jio-creator__actions{align-items:center;display:flex;gap:10px}.jio-creator__save{align-items:center;color:var(--jc-ink-soft);display:inline-flex;font-size:13px;gap:6px}.jio-creator__save>i{color:var(--jc-line);font-size:7px}.jio-creator__save time{font-variant-numeric:tabular-nums;opacity:.7}.jio-creator__save.is-saved>i{color:var(--jc-accent)}.jio-creator__save.is-conflict,.jio-creator__save.is-conflict>i,.jio-creator__save.is-error,.jio-creator__save.is-error>i{color:var(--jc-warn)}.jio-creator__btn,.jio-creator__ghost,.jio-creator__primary{align-items:center;border:1px solid transparent;border-radius:8px;cursor:pointer;display:inline-flex;font-size:14px;justify-content:center;min-height:36px;padding:0 16px;transition:background .18s ease,border-color .18s ease,color .18s ease}.jio-creator__ghost{background:transparent;border-color:var(--jc-line)}.jio-creator__ghost:focus-visible,.jio-creator__ghost:hover{border-color:var(--jc-accent);color:var(--jc-accent)}.jio-creator__primary{background:var(--jc-accent);color:#fff}.jio-creator__primary:focus-visible,.jio-creator__primary:hover{background:var(--jc-accent-strong)}.jio-creator__primary:disabled{cursor:not-allowed;opacity:.5}.jio-creator__notice{align-items:center;background:#f1f5f2;border-bottom:1px solid var(--jc-line);color:var(--jc-ink-soft);display:flex;font-size:13px;gap:12px;margin:0 auto;max-width:820px;padding:10px 16px}.jio-creator__notice>span{flex:1}.jio-creator__notice button{background:transparent;border:0;color:var(--jc-accent);cursor:pointer}.jio-creator__notice.is-error{background:#fdf2ee;color:var(--jc-warn)}.jio-creator__hint{color:var(--jc-ink-soft);font-size:13px;margin:18px auto 0;max-width:820px;padding:0 clamp(16px,4vw,40px)}.jio-creator__canvas{margin:0 auto;padding:clamp(20px,4vw,44px) clamp(20px,5vw,52px) 140px;width:min(720px,100%)}.jio-creator__title{display:block;margin-bottom:6px}.jio-creator__title textarea{background:transparent;border:0;color:var(--jc-ink);font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",serif;font-size:clamp(23px,2.6vw,27px);font-weight:500;letter-spacing:.01em;line-height:1.4;min-height:50px;padding:0;resize:none;width:100%}.jio-creator__title textarea:focus{outline:0}.jio-creator__title textarea::-moz-placeholder{color:#b7c2bd}.jio-creator__title textarea::placeholder{color:#b7c2bd}.jio-creator__excerpt{display:block;margin-bottom:22px}.jio-creator__excerpt>span{color:#9aa8a2;display:block;font-size:12px;letter-spacing:.02em;margin-bottom:4px}.jio-creator__excerpt textarea{background:transparent;border:0;color:var(--jc-ink-soft);font-family:inherit;font-size:14px;line-height:1.7;padding:6px 0;resize:none;width:100%}.jio-creator__excerpt textarea:focus{outline:0}.jio-creator__editor{min-height:40vh;position:relative}.jio-creator__editor .block-editor-writing-flow{font-size:16px;letter-spacing:.01em;line-height:1.85}.jio-creator__editor .block-editor-default-block-appender textarea.block-editor-default-block-appender__content{color:#b7c2bd}.jio-creator__editor .block-editor-block-list__layout{padding-bottom:40px}.jio-creator__editor .wp-block{max-width:none}.jio-creator__editor .block-editor-block-list__block{margin-bottom:1.1em;margin-top:0}.jio-creator__editor .block-editor-block-list__block[data-type="core/heading"]{margin-top:1.6em}.jio-creator__editor .block-editor-block-list__block.is-hovered:after,.jio-creator__editor .block-editor-block-list__block.is-selected:after{border-radius:3px;box-shadow:0 0 0 1.5px rgba(38,118,101,.35)}.jio-creator__editor .block-editor-block-contextual-toolbar{margin-left:0}.jio-creator__editor .block-editor-block-contexLine truncated
|
||||
.jio-page-submit{background:#fafbfa}.jio-page-submit .float-btn,.jio-page-submit .footer,.jio-page-submit .footer-tabbar,.jio-page-submit .header,.jio-page-submit .jio-float-buttons{display:none!important}.jio-page-submit #main-content.container{max-width:none;padding:0}#jio-creator-studio.is-ready{display:block}.jio-creator{--jc-ink:#243330;--jc-ink-soft:#5c6b66;--jc-paper:#fafbfa;--jc-line:#e2e9e5;--jc-accent:#267665;--jc-accent-strong:#1d5f52;--jc-warn:#b4573f;--jc-bar:60px;-webkit-font-smoothing:antialiased;background:var(--jc-paper);color:var(--jc-ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;min-height:100vh;min-height:100dvh}.jio-creator *,.jio-creator :after,.jio-creator :before{box-sizing:border-box}.jio-creator button{color:inherit;font:inherit}.jio-creator__bar{align-items:center;backdrop-filter:blur(10px);background:rgba(250,251,250,.92);border-bottom:1px solid var(--jc-line);display:flex;gap:16px;height:var(--jc-bar);padding:0 clamp(16px,4vw,40px);position:sticky;top:0;z-index:30}.jio-creator__back{align-items:center;color:var(--jc-ink-soft);display:inline-flex;gap:6px;text-decoration:none}.jio-creator__back:focus-visible,.jio-creator__back:hover{color:var(--jc-accent)}.jio-creator__brand{color:var(--jc-ink-soft);font-size:13px;letter-spacing:.06em;margin-right:auto}.jio-creator__actions{align-items:center;display:flex;gap:10px}.jio-creator__save{align-items:center;color:var(--jc-ink-soft);display:inline-flex;font-size:13px;gap:6px}.jio-creator__save>i{color:var(--jc-line);font-size:7px}.jio-creator__save time{font-variant-numeric:tabular-nums;opacity:.7}.jio-creator__save.is-saved>i{color:var(--jc-accent)}.jio-creator__save.is-conflict,.jio-creator__save.is-conflict>i,.jio-creator__save.is-error,.jio-creator__save.is-error>i{color:var(--jc-warn)}.jio-creator__btn,.jio-creator__ghost,.jio-creator__primary{align-items:center;border:1px solid transparent;border-radius:8px;cursor:pointer;display:inline-flex;font-size:14px;justify-content:center;min-height:36px;padding:0 16px;transition:background .18s ease,border-color .18s ease,color .18s ease}.jio-creator__ghost{background:transparent;border-color:var(--jc-line)}.jio-creator__ghost:focus-visible,.jio-creator__ghost:hover{border-color:var(--jc-accent);color:var(--jc-accent)}.jio-creator__primary{background:var(--jc-accent);color:#fff}.jio-creator__primary:focus-visible,.jio-creator__primary:hover{background:var(--jc-accent-strong)}.jio-creator__primary:disabled{cursor:not-allowed;opacity:.5}.jio-creator__notice{align-items:center;background:#f1f5f2;border-bottom:1px solid var(--jc-line);color:var(--jc-ink-soft);display:flex;font-size:13px;gap:12px;margin:0 auto;max-width:820px;padding:10px 16px}.jio-creator__notice>span{flex:1}.jio-creator__notice button{background:transparent;border:0;color:var(--jc-accent);cursor:pointer}.jio-creator__notice.is-error{background:#fdf2ee;color:var(--jc-warn)}.jio-creator__hint{color:var(--jc-ink-soft);font-size:13px;margin:18px auto 0;max-width:820px;padding:0 clamp(16px,4vw,40px)}.jio-creator__canvas{margin:0 auto;padding:clamp(20px,4vw,44px) clamp(20px,5vw,52px) 140px;width:min(720px,100%)}.jio-creator__title{display:block;margin-bottom:6px}.jio-creator__title textarea{background:transparent;border:0;color:var(--jc-ink);font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",serif;font-size:clamp(23px,2.6vw,27px);font-weight:500;letter-spacing:.01em;line-height:1.4;min-height:50px;padding:0;resize:none;width:100%}.jio-creator__title textarea:focus{outline:0}.jio-creator__title textarea::-moz-placeholder{color:#b7c2bd}.jio-creator__title textarea::placeholder{color:#b7c2bd}.jio-creator__excerpt{display:block;margin-bottom:22px}.jio-creator__excerpt>span{color:#9aa8a2;display:block;font-size:12px;letter-spacing:.02em;margin-bottom:4px}.jio-creator__excerpt textarea{background:transparent;border:0;color:var(--jc-ink-soft);font-family:inherit;font-size:14px;line-height:1.7;padding:6px 0;resize:none;width:100%}.jio-creator__excerpt textarea:focus{outline:0}.jio-creator__editor{min-height:40vh;position:relative}.jio-creator__editor .block-editor-writing-flow{font-size:16px;letter-spacing:.01em;line-height:1.85}.jio-creator__editor .block-editor-default-block-appender textarea.block-editor-default-block-appender__content{color:#b7c2bd}.jio-creator__editor .block-editor-block-list__layout{padding-bottom:40px}.jio-creator__editor .wp-block{max-width:none}.jio-creator__editor .block-editor-block-list__block{margin-bottom:1.1em;margin-top:0}.jio-creator__editor .block-editor-block-list__block[data-type="core/heading"]{margin-top:1.6em}.jio-creator__editor .block-editor-block-list__block.is-hovered:after,.jio-creator__editor .block-editor-block-list__block.is-selected:after{border-radius:3px;box-shadow:0 0 0 1.5px rgba(38,118,101,.35)}.jio-creator__editor .block-editor-block-contextual-toolbar{margin-left:0}.jio-creator__editor .block-editor-block-contexLine truncated
|
||||
@@ -1 +1 @@
|
||||
(()=>{"use strict";const e={n:t=>{const a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})},o:(e,t)=>Object.hasOwn(e,t)},t=window.React,a=window.wp.element,r=window.wp.blocks,n=window.wp.blockLibrary,o=window.wp.data,i=window.wp.blockEditor,l=window.wp.wordcount,c=window.wp.i18n;function s(e,t){const a=e&&(e.message||e.error)||(401===t?"登录状态已失效,请刷新页面重新登录。":"请求失败,请稍后重试。"),r=new Error(String(a));return r.status=t,r.code=e&&e.code?String(e.code):"",r.data=e,r}async function m(e){try{return await e.json()}catch(e){return null}}async function u(e,t,a){const r=await fetch(e,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":a},body:JSON.stringify(t)}),n=await m(r);if(!r.ok)throw s(n,r.status);return n}async function d(e,t,a,r={}){const n=new FormData;n.append("file",t),Object.entries(r).forEach(([e,t])=>n.append(e,t));const o=await fetch(e,{method:"POST",credentials:"same-origin",headers:{"X-WP-Nonce":a},body:n}),i=await m(o);if(!o.ok)throw s(i,o.status);return i}const p=window.wp.apiFetch;var _=e.n(p);const f=window.jioCreatorStudio||{},b=f.nonce||"";function y(e){const{draft:r,setDraft:n,capabilities:o,limits:i,taxonomy:l,isPublishedEdit:s,onClose:m,onSaveDraft:u,onSubmit:p,privateStorage:_,privateUploads:y,saving:E,captcha:j}=e,[g,h]=(0,a.useState)(""),[w,v]=(0,a.useState)(""),[N,k]=(0,a.useState)(!1),S=(0,a.useRef)(null),C=(0,a.useRef)(null),x=(0,a.useRef)(null);(0,a.useEffect)(()=>{const e=x.current,t=document.getElementById("jio-creator-captcha");if(!e||!t)return;const a=t.parentElement;return e.appendChild(t),t.removeAttribute("hidden"),()=>{a&&(a.appendChild(t),t.setAttribute("hidden",""))}},[]);const I=(0,a.useMemo)(()=>(r.title||"").trim().length,[r.title])>=Number(i.titleMin||1),L=()=>{const e=g.trim();if(!e)return;const t=e.split(/[,,\n]+/u).map(e=>e.trim()).filter(Boolean);n({tags:Array.from(new Set([...r.tags,...t]))}),h("")};return(0,t.createElement)("div",{className:"jio-creator-drawer",role:"dialog","aria-modal":"true","aria-labelledby":"jio-creator-publish-title"},(0,t.createElement)("button",{type:"button",className:"jio-creator-drawer__backdrop","aria-label":(0,c.__)("关闭","jio"),onClick:m}),(0,t.createElement)("div",{className:"jio-creator-drawer__panel"},(0,t.createElement)("header",{className:"jio-creator-drawer__head"},(0,t.createElement)("h2",{id:"jio-creator-publish-title"},s?(0,c.__)("提交改稿","jio"):(0,c.__)("发布文章","jio")),(0,t.createElement)("button",{type:"button",className:"jio-creator-drawer__close",onClick:m,"aria-label":(0,c.__)("关闭","jio")},(0,t.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))),(0,t.createElement)("div",{className:"jio-creator-drawer__body"},s&&(0,t.createElement)("p",{className:"jio-creator-drawer__note"},(0,c.__)("审核通过前,读者看到的仍然是当前线上版本。","jio")),(0,t.createElement)("section",{className:"jio-creator-field"},(0,t.createElement)("h3",null,(0,c.__)("封面","jio")),r.featured?.data?.url?(0,t.createElement)("div",{className:"jio-creator-cover"},(0,t.createElement)("img",{src:String(r.featured.data.url),alt:""}),(0,t.createElement)("button",{type:"button",onClick:()=>n({featured:{type:"",data:{}}}),"aria-label":(0,c.__)("移除封面","jio")},(0,t.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))):o.canUploadImage?(0,t.createElement)("label",{className:"jio-creator-cover-empty"},(0,t.createElement)("input",{ref:S,type:"file",accept:"image/*",onChange:()=>{(async()=>{const e=S.current?.files?.[0];if(e&&f.media?.uploadUrl?.image){v(""),k(!0);try{const t=await d(f.media.uploadUrl.image,e,b),a=Number(t.attachment_id||t.id||0),r=String(t.url||"");if(!a||!r)throw new Error((0,c.__)("上传后无法读取图片。","jio"));n({featured:{type:"image",mediaId:a,data:{id:a,url:r}}})}catch(e){v(String(e?.message||(0,c.__)("上传失败","jio")))}finally{k(!1)}}})()},disabled:N}),(0,t.createElement)("i",{className:"fa fas fa-plus","aria-hidden":"true"}),(0,t.createElement)("span",null,N?(0,c.__)("上传中…","jio"):(0,c.__)("上传封面","jio"))):(0,t.createElement)("p",{className:"jio-creator-muted"},(0,c.__)("当前账号不能设置封面。","jio"))),(0,t.createElement)("section",{className:"jio-creator-field"},(0,t.createElement)("h3",null,(0,c.__)("分类","jio")),(0,t.createElement)("div",{className:"jio-creator-chips"},0===l.categories.length&&(0,t.createElement)("span",{className:"jio-creator-muted"},(0,c.__)("暂无可选分类","jio")),l.categories.map(e=>(0,t.createElement)("label",{key:e.id,className:"jio-creator-chip"+(r.categories.includes(e.id)?" is-active":"")},(0,t.createElement)("input",{type:"checkbox",checked:r.categories.includes(e.id),onChange:()=>(e=>{const t=r.categories.includes(e);n({categories:t?r.categories.filter(t=>t!==e):[...r.cateLine truncated
|
||||
(()=>{"use strict";const e={n:t=>{const a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})},o:(e,t)=>Object.hasOwn(e,t)},t=window.React,a=window.wp.element,r=window.wp.blocks,n=window.wp.blockLibrary,o=window.wp.data,i=window.wp.blockEditor,l=window.wp.wordcount,c=window.wp.i18n;function s(e,t){const a=e&&(e.message||e.error)||(401===t?"登录状态已失效,请刷新页面重新登录。":"请求失败,请稍后重试。"),r=new Error(String(a));return r.status=t,r.code=e&&e.code?String(e.code):"",r.data=e,r}async function m(e){try{return await e.json()}catch(e){return null}}async function u(e,t,a){const r=await fetch(e,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json","X-WP-Nonce":a},body:JSON.stringify(t)}),n=await m(r);if(!r.ok)throw s(n,r.status);return n}async function d(e,t,a,r={}){const n=new FormData;n.append("file",t),Object.entries(r).forEach(([e,t])=>n.append(e,t));const o=await fetch(e,{method:"POST",credentials:"same-origin",headers:{"X-WP-Nonce":a},body:n}),i=await m(o);if(!o.ok)throw s(i,o.status);return i}const p=window.wp.apiFetch;var _=e.n(p);const f=window.wp.hooks,b=window.wp.compose,y=window.wp.components,E=[{key:"half",label:(0,c.__)("半屏","jio"),className:"jio-img-w--half"},{key:"medium",label:(0,c.__)("中等","jio"),className:"jio-img-w--medium"},{key:"wide",label:(0,c.__)("通栏","jio"),className:"jio-img-w--wide"},{key:"full",label:(0,c.__)("全宽","jio"),className:"jio-img-w--full"}];function j(e){return a=>{if("core/image"!==a.name)return(0,t.createElement)(e,{...a});const r=String(a.attributes?.className||""),n=function(e){const t=E.find(t=>(e||"").split(/\s+/).includes(t.className));return t?t.key:"wide"}(r);return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(e,{...a}),(0,t.createElement)(i.BlockControls,{group:"inline"},(0,t.createElement)(y.ToolbarGroup,{controls:E.map(e=>({title:e.label,children:e.label,isActive:n===e.key,onClick:()=>(e=>{const t=r.split(/\s+/).filter(e=>e&&!E.some(t=>t.className===e));a.setAttributes({className:[...t,e.className].join(" ")})})(e)}))})))}}const g=window.jioCreatorStudio||{},h=g.nonce||"";function w(e){const{draft:r,setDraft:n,capabilities:o,limits:i,taxonomy:l,isPublishedEdit:s,onClose:m,onSaveDraft:u,onSubmit:p,privateStorage:_,privateUploads:f,saving:b,captcha:y}=e,[E,j]=(0,a.useState)(""),[w,v]=(0,a.useState)(""),[N,k]=(0,a.useState)(!1),S=(0,a.useRef)(null),C=(0,a.useRef)(null),I=(0,a.useRef)(null);(0,a.useEffect)(()=>{const e=I.current,t=document.getElementById("jio-creator-captcha");if(!e||!t)return;const a=t.parentElement;return e.appendChild(t),t.removeAttribute("hidden"),()=>{a&&(a.appendChild(t),t.setAttribute("hidden",""))}},[]);const x=(0,a.useMemo)(()=>(r.title||"").trim().length,[r.title])>=Number(i.titleMin||1),L=()=>{const e=E.trim();if(!e)return;const t=e.split(/[,,\n]+/u).map(e=>e.trim()).filter(Boolean);n({tags:Array.from(new Set([...r.tags,...t]))}),j("")};return(0,t.createElement)("div",{className:"jio-creator-drawer",role:"dialog","aria-modal":"true","aria-labelledby":"jio-creator-publish-title"},(0,t.createElement)("button",{type:"button",className:"jio-creator-drawer__backdrop","aria-label":(0,c.__)("关闭","jio"),onClick:m}),(0,t.createElement)("div",{className:"jio-creator-drawer__panel"},(0,t.createElement)("header",{className:"jio-creator-drawer__head"},(0,t.createElement)("h2",{id:"jio-creator-publish-title"},s?(0,c.__)("提交改稿","jio"):(0,c.__)("发布文章","jio")),(0,t.createElement)("button",{type:"button",className:"jio-creator-drawer__close",onClick:m,"aria-label":(0,c.__)("关闭","jio")},(0,t.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))),(0,t.createElement)("div",{className:"jio-creator-drawer__body"},s&&(0,t.createElement)("p",{className:"jio-creator-drawer__note"},(0,c.__)("审核通过前,读者看到的仍然是当前线上版本。","jio")),(0,t.createElement)("section",{className:"jio-creator-field"},(0,t.createElement)("h3",null,(0,c.__)("封面","jio")),r.featured?.data?.url?(0,t.createElement)("div",{className:"jio-creator-cover"},(0,t.createElement)("img",{src:String(r.featured.data.url),alt:""}),(0,t.createElement)("button",{type:"button",onClick:()=>n({featured:{type:"",data:{}}}),"aria-label":(0,c.__)("移除封面","jio")},(0,t.createElement)("i",{className:"fa fas fa-times","aria-hidden":"true"}))):o.canUploadImage?(0,t.createElement)("label",{className:"jio-creator-cover-empty"},(0,t.createElement)("input",{ref:S,type:"file",accept:"image/*",onChange:()=>{(async()=>{const e=S.current?.files?.[0];if(e&&g.media?.uploadUrl?.image){v(""),k(!0);try{const t=await d(g.media.uploadUrl.image,e,h),a=Number(t.attachment_id||t.id||0),r=String(t.url||"");if(!a||!r)throw new Error((0,c.__)("上传后无法读取图片。","jio"));n({featured:{type:"image",mediaId:a,data:{id:a,url:r}}})}catch(e){v(String(e?.Line truncated
|
||||
Generated
+426
-35
@@ -14,9 +14,11 @@
|
||||
"@wordpress/block-editor": "11.8.0",
|
||||
"@wordpress/block-library": "^8.8.0",
|
||||
"@wordpress/blocks": "12.8.0",
|
||||
"@wordpress/components": "23.8.0",
|
||||
"@wordpress/components": "^23.8.0",
|
||||
"@wordpress/compose": "^6.8.0",
|
||||
"@wordpress/data": "9.5.0",
|
||||
"@wordpress/element": "5.8.0",
|
||||
"@wordpress/hooks": "^3.31.0",
|
||||
"@wordpress/i18n": "4.31.0",
|
||||
"@wordpress/scripts": "26.4.0",
|
||||
"@wordpress/wordcount": "3.31.0",
|
||||
@@ -4834,6 +4836,19 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/a11y/node_modules/@wordpress/hooks": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
|
||||
"integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/a11y/node_modules/@wordpress/i18n": {
|
||||
"version": "4.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
|
||||
@@ -5069,6 +5084,34 @@
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@wordpress/block-editor/node_modules/@wordpress/compose": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
|
||||
"integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/mousetrap": "^1.6.8",
|
||||
"@wordpress/deprecated": "^3.58.0",
|
||||
"@wordpress/dom": "^3.58.0",
|
||||
"@wordpress/element": "^5.35.0",
|
||||
"@wordpress/is-shallow-equal": "^4.58.0",
|
||||
"@wordpress/keycodes": "^3.58.0",
|
||||
"@wordpress/priority-queue": "^2.58.0",
|
||||
"@wordpress/undo-manager": "^0.18.0",
|
||||
"change-case": "^4.1.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"mousetrap": "^1.6.5",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/block-editor/node_modules/@wordpress/data": {
|
||||
"version": "9.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
|
||||
@@ -5132,6 +5175,19 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/block-editor/node_modules/@wordpress/hooks": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
|
||||
"integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/block-editor/node_modules/@wordpress/i18n": {
|
||||
"version": "4.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
|
||||
@@ -5427,6 +5483,34 @@
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/commands/node_modules/@wordpress/compose": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
|
||||
"integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/mousetrap": "^1.6.8",
|
||||
"@wordpress/deprecated": "^3.58.0",
|
||||
"@wordpress/dom": "^3.58.0",
|
||||
"@wordpress/element": "^5.35.0",
|
||||
"@wordpress/is-shallow-equal": "^4.58.0",
|
||||
"@wordpress/keycodes": "^3.58.0",
|
||||
"@wordpress/priority-queue": "^2.58.0",
|
||||
"@wordpress/undo-manager": "^0.18.0",
|
||||
"change-case": "^4.1.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"mousetrap": "^1.6.5",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/commands/node_modules/@wordpress/data": {
|
||||
"version": "9.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
|
||||
@@ -5477,6 +5561,19 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/commands/node_modules/@wordpress/hooks": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
|
||||
"integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/commands/node_modules/@wordpress/i18n": {
|
||||
"version": "4.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
|
||||
@@ -5661,23 +5758,22 @@
|
||||
"license": "0BSD"
|
||||
},
|
||||
"node_modules/@wordpress/compose": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
|
||||
"integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
|
||||
"version": "6.8.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.8.0.tgz",
|
||||
"integrity": "sha512-E83cseBNGMhUMBT8IziDS0nn0zAJaJCxA0142NuSn88lLA+3Lihz9kV2djpyZz4kWGl9n2XLvoOtdHxpjJYC+A==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/mousetrap": "^1.6.8",
|
||||
"@wordpress/deprecated": "^3.58.0",
|
||||
"@wordpress/dom": "^3.58.0",
|
||||
"@wordpress/element": "^5.35.0",
|
||||
"@wordpress/is-shallow-equal": "^4.58.0",
|
||||
"@wordpress/keycodes": "^3.58.0",
|
||||
"@wordpress/priority-queue": "^2.58.0",
|
||||
"@wordpress/undo-manager": "^0.18.0",
|
||||
"@wordpress/deprecated": "^3.31.0",
|
||||
"@wordpress/dom": "^3.31.0",
|
||||
"@wordpress/element": "^5.8.0",
|
||||
"@wordpress/is-shallow-equal": "^4.31.0",
|
||||
"@wordpress/keycodes": "^3.31.0",
|
||||
"@wordpress/priority-queue": "^2.31.0",
|
||||
"change-case": "^4.1.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"clipboard": "^2.0.8",
|
||||
"mousetrap": "^1.6.5",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
@@ -5688,26 +5784,6 @@
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/compose/node_modules/@wordpress/element": {
|
||||
"version": "5.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
|
||||
"integrity": "sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/react": "^18.2.79",
|
||||
"@types/react-dom": "^18.2.25",
|
||||
"@wordpress/escape-html": "^2.58.0",
|
||||
"change-case": "^4.1.2",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"react": "^18.3.0",
|
||||
"react-dom": "^18.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/core-data": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-6.35.0.tgz",
|
||||
@@ -5941,6 +6017,34 @@
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/core-data/node_modules/@wordpress/compose": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
|
||||
"integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/mousetrap": "^1.6.8",
|
||||
"@wordpress/deprecated": "^3.58.0",
|
||||
"@wordpress/dom": "^3.58.0",
|
||||
"@wordpress/element": "^5.35.0",
|
||||
"@wordpress/is-shallow-equal": "^4.58.0",
|
||||
"@wordpress/keycodes": "^3.58.0",
|
||||
"@wordpress/priority-queue": "^2.58.0",
|
||||
"@wordpress/undo-manager": "^0.18.0",
|
||||
"change-case": "^4.1.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"mousetrap": "^1.6.5",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/core-data/node_modules/@wordpress/data": {
|
||||
"version": "9.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
|
||||
@@ -5991,6 +6095,19 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/core-data/node_modules/@wordpress/hooks": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
|
||||
"integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/core-data/node_modules/@wordpress/i18n": {
|
||||
"version": "4.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
|
||||
@@ -6141,6 +6258,34 @@
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/data/node_modules/@wordpress/compose": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
|
||||
"integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/mousetrap": "^1.6.8",
|
||||
"@wordpress/deprecated": "^3.58.0",
|
||||
"@wordpress/dom": "^3.58.0",
|
||||
"@wordpress/element": "^5.35.0",
|
||||
"@wordpress/is-shallow-equal": "^4.58.0",
|
||||
"@wordpress/keycodes": "^3.58.0",
|
||||
"@wordpress/priority-queue": "^2.58.0",
|
||||
"@wordpress/undo-manager": "^0.18.0",
|
||||
"change-case": "^4.1.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"mousetrap": "^1.6.5",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/data/node_modules/@wordpress/element": {
|
||||
"version": "5.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.35.0.tgz",
|
||||
@@ -6221,6 +6366,19 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/deprecated/node_modules/@wordpress/hooks": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
|
||||
"integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/dom": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-3.58.0.tgz",
|
||||
@@ -6325,9 +6483,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/hooks": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
|
||||
"integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
|
||||
"version": "3.31.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.31.0.tgz",
|
||||
"integrity": "sha512-dtXTk6miFaqAQmtjuO1Ox11sdkJNMl/Wv402VlPI8Z3QBUyEAH+FMGoHbAwpy3AGHJJb5pFYSRQBNAgZMGZLIw==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
@@ -6475,6 +6633,34 @@
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/compose": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
|
||||
"integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/mousetrap": "^1.6.8",
|
||||
"@wordpress/deprecated": "^3.58.0",
|
||||
"@wordpress/dom": "^3.58.0",
|
||||
"@wordpress/element": "^5.35.0",
|
||||
"@wordpress/is-shallow-equal": "^4.58.0",
|
||||
"@wordpress/keycodes": "^3.58.0",
|
||||
"@wordpress/priority-queue": "^2.58.0",
|
||||
"@wordpress/undo-manager": "^0.18.0",
|
||||
"change-case": "^4.1.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"mousetrap": "^1.6.5",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/keyboard-shortcuts/node_modules/@wordpress/data": {
|
||||
"version": "9.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
|
||||
@@ -6552,6 +6738,19 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/keycodes/node_modules/@wordpress/hooks": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
|
||||
"integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/keycodes/node_modules/@wordpress/i18n": {
|
||||
"version": "4.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
|
||||
@@ -6729,6 +6928,34 @@
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/preferences/node_modules/@wordpress/compose": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
|
||||
"integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/mousetrap": "^1.6.8",
|
||||
"@wordpress/deprecated": "^3.58.0",
|
||||
"@wordpress/dom": "^3.58.0",
|
||||
"@wordpress/element": "^5.35.0",
|
||||
"@wordpress/is-shallow-equal": "^4.58.0",
|
||||
"@wordpress/keycodes": "^3.58.0",
|
||||
"@wordpress/priority-queue": "^2.58.0",
|
||||
"@wordpress/undo-manager": "^0.18.0",
|
||||
"change-case": "^4.1.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"mousetrap": "^1.6.5",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/preferences/node_modules/@wordpress/data": {
|
||||
"version": "9.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
|
||||
@@ -6779,6 +7006,19 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/preferences/node_modules/@wordpress/hooks": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
|
||||
"integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/preferences/node_modules/@wordpress/i18n": {
|
||||
"version": "4.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
|
||||
@@ -7164,6 +7404,34 @@
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/compose": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
|
||||
"integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/mousetrap": "^1.6.8",
|
||||
"@wordpress/deprecated": "^3.58.0",
|
||||
"@wordpress/dom": "^3.58.0",
|
||||
"@wordpress/element": "^5.35.0",
|
||||
"@wordpress/is-shallow-equal": "^4.58.0",
|
||||
"@wordpress/keycodes": "^3.58.0",
|
||||
"@wordpress/priority-queue": "^2.58.0",
|
||||
"@wordpress/undo-manager": "^0.18.0",
|
||||
"change-case": "^4.1.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"mousetrap": "^1.6.5",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/data": {
|
||||
"version": "9.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
|
||||
@@ -7214,6 +7482,19 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/hooks": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
|
||||
"integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/i18n": {
|
||||
"version": "4.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
|
||||
@@ -7359,6 +7640,34 @@
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/rich-text/node_modules/@wordpress/compose": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
|
||||
"integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/mousetrap": "^1.6.8",
|
||||
"@wordpress/deprecated": "^3.58.0",
|
||||
"@wordpress/dom": "^3.58.0",
|
||||
"@wordpress/element": "^5.35.0",
|
||||
"@wordpress/is-shallow-equal": "^4.58.0",
|
||||
"@wordpress/keycodes": "^3.58.0",
|
||||
"@wordpress/priority-queue": "^2.58.0",
|
||||
"@wordpress/undo-manager": "^0.18.0",
|
||||
"change-case": "^4.1.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"mousetrap": "^1.6.5",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/rich-text/node_modules/@wordpress/data": {
|
||||
"version": "9.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
|
||||
@@ -7409,6 +7718,19 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/rich-text/node_modules/@wordpress/hooks": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
|
||||
"integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/rich-text/node_modules/@wordpress/i18n": {
|
||||
"version": "4.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
|
||||
@@ -7837,6 +8159,34 @@
|
||||
"react-dom": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/server-side-render/node_modules/@wordpress/compose": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
|
||||
"integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/mousetrap": "^1.6.8",
|
||||
"@wordpress/deprecated": "^3.58.0",
|
||||
"@wordpress/dom": "^3.58.0",
|
||||
"@wordpress/element": "^5.35.0",
|
||||
"@wordpress/is-shallow-equal": "^4.58.0",
|
||||
"@wordpress/keycodes": "^3.58.0",
|
||||
"@wordpress/priority-queue": "^2.58.0",
|
||||
"@wordpress/undo-manager": "^0.18.0",
|
||||
"change-case": "^4.1.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"mousetrap": "^1.6.5",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/server-side-render/node_modules/@wordpress/data": {
|
||||
"version": "9.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
|
||||
@@ -7887,6 +8237,19 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/server-side-render/node_modules/@wordpress/hooks": {
|
||||
"version": "3.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
|
||||
"integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/server-side-render/node_modules/@wordpress/i18n": {
|
||||
"version": "4.58.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
|
||||
@@ -8095,6 +8458,34 @@
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/viewport/node_modules/@wordpress/compose": {
|
||||
"version": "6.35.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.35.0.tgz",
|
||||
"integrity": "sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==",
|
||||
"dev": true,
|
||||
"license": "GPL-2.0-or-later",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.16.0",
|
||||
"@types/mousetrap": "^1.6.8",
|
||||
"@wordpress/deprecated": "^3.58.0",
|
||||
"@wordpress/dom": "^3.58.0",
|
||||
"@wordpress/element": "^5.35.0",
|
||||
"@wordpress/is-shallow-equal": "^4.58.0",
|
||||
"@wordpress/keycodes": "^3.58.0",
|
||||
"@wordpress/priority-queue": "^2.58.0",
|
||||
"@wordpress/undo-manager": "^0.18.0",
|
||||
"change-case": "^4.1.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"mousetrap": "^1.6.5",
|
||||
"use-memo-one": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wordpress/viewport/node_modules/@wordpress/data": {
|
||||
"version": "9.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@wordpress/data/-/data-9.28.0.tgz",
|
||||
|
||||
@@ -13,9 +13,11 @@
|
||||
"@wordpress/block-editor": "11.8.0",
|
||||
"@wordpress/block-library": "^8.8.0",
|
||||
"@wordpress/blocks": "12.8.0",
|
||||
"@wordpress/components": "23.8.0",
|
||||
"@wordpress/components": "^23.8.0",
|
||||
"@wordpress/compose": "^6.8.0",
|
||||
"@wordpress/data": "9.5.0",
|
||||
"@wordpress/element": "5.8.0",
|
||||
"@wordpress/hooks": "^3.31.0",
|
||||
"@wordpress/i18n": "4.31.0",
|
||||
"@wordpress/scripts": "26.4.0",
|
||||
"@wordpress/wordcount": "3.31.0",
|
||||
|
||||
@@ -67,6 +67,7 @@ const mockBootstrap = {
|
||||
isLoggedIn: true,
|
||||
},
|
||||
limits: { titleMin: 5, titleMax: 30, titlePlaceholder: '请输入标题', contentPlaceholder: '开始写作…' },
|
||||
author: { name: '预览作者', avatar: '', meta: '' },
|
||||
privateUploads: [],
|
||||
privateStorage: false,
|
||||
media: { maxBytes: 5242880, batch: 6 },
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/**
|
||||
* 作者行:标题下方的头像 + 昵称(公众号式)。
|
||||
*
|
||||
* 数据来自服务端 bootstrap,前端只负责展示;没有作者信息时整行不渲染,
|
||||
* 避免出现空头像占位。
|
||||
*
|
||||
* @package Jio
|
||||
*/
|
||||
|
||||
import { __ } from '@wordpress/i18n';
|
||||
|
||||
type Author = {
|
||||
name?: string;
|
||||
avatar?: string;
|
||||
meta?: string;
|
||||
};
|
||||
|
||||
export function AuthorRow({ author }: { author: Author }) {
|
||||
const name = typeof author?.name === 'string' ? author.name.trim() : '';
|
||||
if (name === '') {
|
||||
return null;
|
||||
}
|
||||
const avatar = typeof author?.avatar === 'string' ? author.avatar : '';
|
||||
const meta = typeof author?.meta === 'string' ? author.meta : '';
|
||||
|
||||
return (
|
||||
<div className="jio-creator__author">
|
||||
{avatar !== '' ? (
|
||||
<img className="jio-creator__author-avatar" src={avatar} alt="" width={24} height={24} />
|
||||
) : (
|
||||
<span className="jio-creator__author-avatar is-placeholder" aria-hidden="true">
|
||||
{name.slice(0, 1)}
|
||||
</span>
|
||||
)}
|
||||
<span className="jio-creator__author-name">{name}</span>
|
||||
{meta !== '' && <span className="jio-creator__author-meta">{meta}</span>}
|
||||
<span className="jio-creator__author-hint">{__('原创内容', 'jio')}</span>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* 图片宽度预设(公众号式四档)。
|
||||
*
|
||||
* 通过 block filter 给 core/image 追加「半屏 / 中等 / 通栏 / 全宽」四档宽度,
|
||||
* 选中图片时出现在区块工具条里。宽度存进图片区块的 className,序列化到
|
||||
* post_content 后由前台样式生效,不需要自定义区块或额外元数据。
|
||||
*
|
||||
* @package Jio
|
||||
*/
|
||||
|
||||
import { addFilter } from '@wordpress/hooks';
|
||||
import { createHigherOrderComponent } from '@wordpress/compose';
|
||||
import { BlockControls } from '@wordpress/block-editor';
|
||||
import { ToolbarGroup } from '@wordpress/components';
|
||||
import { __ } from '@wordpress/i18n';
|
||||
const WIDTH_CLASSES = [
|
||||
{ key: 'half', label: __('半屏', 'jio'), className: 'jio-img-w--half' },
|
||||
{ key: 'medium', label: __('中等', 'jio'), className: 'jio-img-w--medium' },
|
||||
{ key: 'wide', label: __('通栏', 'jio'), className: 'jio-img-w--wide' },
|
||||
{ key: 'full', label: __('全宽', 'jio'), className: 'jio-img-w--full' },
|
||||
];
|
||||
|
||||
function currentPreset(className: string): string {
|
||||
const found = WIDTH_CLASSES.find((w) => (className || '').split(/\s+/).includes(w.className));
|
||||
return found ? found.key : 'wide';
|
||||
}
|
||||
|
||||
function withImageWidthControls(BlockEdit: any) {
|
||||
return (props: any) => {
|
||||
if (props.name !== 'core/image') {
|
||||
return <BlockEdit {...props} />;
|
||||
}
|
||||
|
||||
const className = String(props.attributes?.className || '');
|
||||
const active = currentPreset(className);
|
||||
|
||||
const setPreset = (preset: (typeof WIDTH_CLASSES)[number]) => {
|
||||
const rest = className
|
||||
.split(/\s+/)
|
||||
.filter((c) => c && !WIDTH_CLASSES.some((w) => w.className === c));
|
||||
props.setAttributes({ className: [...rest, preset.className].join(' ') });
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<BlockEdit {...props} />
|
||||
<BlockControls group="inline">
|
||||
<ToolbarGroup
|
||||
controls={WIDTH_CLASSES.map((preset) => ({
|
||||
title: preset.label,
|
||||
// 用文字而不是图标,四档宽度靠标签更易分辨。
|
||||
children: preset.label,
|
||||
isActive: active === preset.key,
|
||||
onClick: () => setPreset(preset),
|
||||
}))}
|
||||
/>
|
||||
</BlockControls>
|
||||
</>
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
export function installImageWidthPresets(): void {
|
||||
if ((window as any).__jioImageWidthInstalled) {
|
||||
return;
|
||||
}
|
||||
(window as any).__jioImageWidthInstalled = true;
|
||||
addFilter(
|
||||
'editor.BlockEdit',
|
||||
'jio/creator-studio/image-width',
|
||||
createHigherOrderComponent(withImageWidthControls, 'withJioImageWidth')
|
||||
);
|
||||
}
|
||||
@@ -19,8 +19,10 @@ import { __ } from '@wordpress/i18n';
|
||||
import { apiPost } from './services/api';
|
||||
import { installApiFetchNonce } from './services/api-fetch';
|
||||
import { installMediaUploadBridge } from './services/media';
|
||||
import { installImageWidthPresets } from './extensions/image-width';
|
||||
import { PublishDrawer } from './panels/publish-drawer';
|
||||
import { CoverStrip } from './components/cover-strip';
|
||||
import { AuthorRow } from './components/author-row';
|
||||
import { InsertPanel, type InsertItem } from './panels/insert-panel';
|
||||
import { buildInsertGroups } from './utils/insert-items';
|
||||
import { SaveState, type SaveStateValue } from './components/save-state';
|
||||
@@ -420,6 +422,8 @@ function Studio(): JSX.Element {
|
||||
/>
|
||||
</label>
|
||||
|
||||
<AuthorRow author={bootstrap.author || {}} />
|
||||
|
||||
<div className="jio-creator__editor">
|
||||
<BlockEditorProvider
|
||||
value={blocks}
|
||||
@@ -497,6 +501,7 @@ function mount() {
|
||||
}
|
||||
installApiFetchNonce(nonce);
|
||||
installMediaUploadBridge(bootstrap, nonce);
|
||||
installImageWidthPresets();
|
||||
target.classList.add('is-ready');
|
||||
createRoot(target).render(<Studio />);
|
||||
}
|
||||
|
||||
@@ -456,6 +456,102 @@ $warn: #b4573f;
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------- 图片宽度四档 ---------- */
|
||||
|
||||
.jio-creator__editor,
|
||||
.jio-page-submit .entry-content {
|
||||
.wp-block-image {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
border-radius: 6px;
|
||||
}
|
||||
}
|
||||
|
||||
/* 半屏:围绕正文左侧,右侧留给说明文字。 */
|
||||
.wp-block-image.jio-img-w--half {
|
||||
width: 50%;
|
||||
margin-left: 0;
|
||||
margin-right: auto;
|
||||
|
||||
@media (max-width: 767px) {
|
||||
width: 100%;
|
||||
margin-left: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.wp-block-image.jio-img-w--medium {
|
||||
width: 72%;
|
||||
}
|
||||
|
||||
.wp-block-image.jio-img-w--wide {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* 全宽:突破正文行宽,但受容器 padding 约束避免横向滚动。 */
|
||||
.wp-block-image.jio-img-w--full {
|
||||
width: calc(100% + clamp(24px, 6vw, 64px));
|
||||
max-width: none;
|
||||
margin-left: calc(clamp(24px, 6vw, 64px) / -2);
|
||||
|
||||
@media (max-width: 767px) {
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------- 作者行 ---------- */
|
||||
|
||||
.jio-creator__author {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
margin: 2px 0 20px;
|
||||
color: #8c9a94;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.jio-creator__author-avatar {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
flex: 0 0 auto;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.jio-creator__author-avatar.is-placeholder {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: #e3ece7;
|
||||
color: #4a5f57;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.jio-creator__author-name {
|
||||
color: #4a5f57;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.jio-creator__author-meta {
|
||||
padding: 1px 6px;
|
||||
border-radius: 4px;
|
||||
background: #eef5f2;
|
||||
color: #3c7d6c;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.jio-creator__author-hint {
|
||||
margin-left: auto;
|
||||
color: #b0bcb7;
|
||||
}
|
||||
|
||||
/* ---------- 常驻插入按钮 ---------- */
|
||||
|
||||
.jio-creator__insert {
|
||||
|
||||
@@ -153,6 +153,8 @@ final class CreatorRest {
|
||||
'titlePlaceholder' => (string) $settings['title_placeholder'],
|
||||
'contentPlaceholder' => (string) $settings['content_placeholder'],
|
||||
],
|
||||
// 作者行数据由服务端给出,前端不自行拼装昵称/头像。
|
||||
'author' => $this->author_payload($editable, $user_id),
|
||||
'privateUploads' => $this->private_upload_rows($user_id, $post_id),
|
||||
'privateStorage' => PrivateAssets::is_available(),
|
||||
'media' => [
|
||||
@@ -573,6 +575,37 @@ final class CreatorRest {
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 作者行数据:昵称、头像与身份说明。
|
||||
*
|
||||
* @return array{name:string,avatar:string,meta:string}
|
||||
*/
|
||||
private function author_payload(?\WP_Post $editable, int $user_id): array {
|
||||
$author_id = $editable instanceof \WP_Post ? (int) $editable->post_author : $user_id;
|
||||
$user = $author_id > 0 ? get_userdata($author_id) : null;
|
||||
if (!$user) {
|
||||
return ['name' => '', 'avatar' => '', 'meta' => ''];
|
||||
}
|
||||
|
||||
$avatar = function_exists('jio_get_avatar_url') ? (string) jio_get_avatar_url($author_id, ['size' => 64]) : '';
|
||||
if ($avatar === '' && function_exists('get_avatar_url')) {
|
||||
$avatar = (string) get_avatar_url($author_id, ['size' => 64]);
|
||||
}
|
||||
|
||||
$meta = '';
|
||||
if ($author_id !== $user_id) {
|
||||
$meta = __('原作者', 'jio');
|
||||
} elseif (function_exists('jio_get_user_vip_level') && (int) jio_get_user_vip_level($user_id) > 0) {
|
||||
$meta = sprintf(__('VIP%s', 'jio'), (string) max(1, min(2, (int) jio_get_user_vip_level($user_id))));
|
||||
}
|
||||
|
||||
return [
|
||||
'name' => (string) $user->display_name,
|
||||
'avatar' => $avatar,
|
||||
'meta' => $meta,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<string, mixed> $post_meta
|
||||
* @return array<string, mixed>
|
||||
|
||||
Reference in new issue
Block a user