WordPress中Wsying Editor如何为<br>前选中文本添加自定义格式?
的段落内部分文本应用H3自定义格式
我在WordPress的Wsying Editor中配置了如下自定义格式:
array( 'title' => 'Content Sub Heading', 'block' => 'h3', 'classes' => 'h3' )该配置可正常运行,但当遇到内容为
<p>custom sub heading<br/>not custom sub heading</p>的情况时,无法为其中的“custom sub heading”文本添加h3或其他HTML标签。请问是否有无需删除
标签即可实现该需求的方法?
解决方案(无需移除<br>标签)
1. 改用行内元素+CSS模拟H3样式
这是最省心的方案,问题核心其实是HTML规范不允许块级元素(比如<h3>)嵌套在<p>标签内,编辑器会自动阻止这种无效嵌套。我们换个思路绕开这个限制:
把自定义格式的block参数改成行内元素span,然后用CSS赋予它H3的视觉样式:
array( 'title' => 'Content Sub Heading', 'block' => 'span', 'classes' => 'inline-sub-heading' )
接着在你的主题style.css(或者后台自定义CSS面板)里添加样式:
.inline-sub-heading { display: block; /* 可选,保持块级视觉效果 */ font-size: 1.5em; font-weight: 700; margin: 0.83em 0; /* 复制你当前H3的其他样式,比如颜色、行高 */ }
这样操作后,你可以直接选中<p>内的custom sub heading应用这个格式,<br>标签会被保留,同时文本的视觉效果和H3完全一致。
2. 手动调整HTML结构(适合零散内容)
如果只是少数内容需要处理,你可以切换到编辑器的自定义HTML块,手动调整结构来符合规范——不用删<br>,而是把原段落拆分成合理的结构:
<h3 class="h3">custom sub heading</h3> <p>not custom sub heading</p>
这里相当于把原段落里的<br>替换成了段落结束,但视觉上和原来的换行效果一致,同时也能正确应用H3标签。
3. 自定义编辑器脚本(批量/自动化场景)
如果你需要批量处理这种带<br>的段落,可以写一段自定义JavaScript来扩展Wsying Editor的功能:
- 监听格式应用事件,检测选中的文本是否在
<p>标签内且包含<br> - 自动把选中的文本提取出来,包裹成
<h3 class="h3">...</h3> - 把
<br>标签移动到<h3>之后,同时拆分原段落为两个部分
你可以通过WordPress的add_action('enqueue_block_editor_assets', ...)来加载这段脚本,具体实现需要一点编辑器开发基础,但能彻底解决批量场景的问题。
内容的提问来源于stack exchange,提问作者samjhana joshi

