ebo*_*ina 5 css wordpress reactjs wordpress-gutenberg
我想构建一个无头 WordPress + React 网站。
我设法做“非古腾堡”的东西(页眉、页脚等)并且一切正常。
我的问题是帖子内容。我可以在 JSON 中获得它的 html 样式。如果我在 React 中编写样式,那么它在前端看起来还可以。
但是我应该把我的古腾堡 css 放在哪里,以便它可以在古腾堡编辑器的后端和前端工作?
我的 json 示例:
"content": {
"rendered": "\n<p class=\"has-text-color has-accent-color\">Some Random lorem ipsum in a paragraph</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img src=\"http://bw.dev.local/wp-content/uploads/2020/05/Toronto.jpg\" alt=\"\" class=\"wp-image-13\" srcset=\"http://bw.dev.local/wp-content/uploads/2020/05/Toronto-1024x288.jpg 1024w, http://bw.dev.local/wp-content/uploads/2020/05/Toronto-300x84.jpg 300w, http://bw.dev.local/wp-content/uploads/2020/05/Toronto-768x216.jpg 768w, http://bw.dev.local/wp-content/uploads/2020/05/Toronto-1536x432.jpg 1536w, http://bw.dev.local/wp-content/uploads/2020/05/Toronto-1200x338.jpg 1200w, http://bw.dev.local/wp-content/uploads/2020/05/Toronto.jpg 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" /></figure>\n",
"protected": false
},
Run Code Online (Sandbox Code Playgroud)
所以我用 JSON发送has-text-color, has-accent-coloretc 类,但我不想在前面和后面写两次 css
有没有一个 css 对两者都适用的解决方案?
我目前想到的工作流程(或解决方法?)是这样的:
所以基本上一个块可以保存为如下形式:
<div class="wp-block-myblocks-foo">Foo</div>
Run Code Online (Sandbox Code Playgroud)
在 React 方面,它会类似于这样:
export default function Foo({ fooContent }) => (
<div
className="wp-block-myblocks-foo"
dangerouslySetInnerHTML={{__html: fooContent}}>
</div>
)
Run Code Online (Sandbox Code Playgroud)
虽然样式表看起来像:
.wp-block-myblocks-foo {
color: tomato;
}
Run Code Online (Sandbox Code Playgroud)
* 也许前端样式表可以在生成(或构建)过程中上传到 CDN,以进一步与 WP 解耦?
也许这个解决方案更适合 SSR 应用程序,因为您需要拉取外部样式表。
不管怎样,希望这可以让更多的人思考这个安排的解决方案!