如何在WordPress Gutenberg中默认开启标题/段落块的加粗功能?
实现Gutenberg标题/段落块默认启用加粗功能
可以实现该需求,通过自定义脚本结合WordPress块编辑器API,就能在添加标题或段落块时自动激活加粗格式,输入的文本会自动被<strong>标签包裹。
实现步骤:
1. 在主题中注册自定义脚本
将以下代码添加到当前主题的functions.php文件中,用于加载自定义脚本:
function enqueue_gutenberg_default_bold_script() { wp_enqueue_script( 'gutenberg-default-bold', get_stylesheet_directory_uri() . '/js/gutenberg-default-bold.js', array( 'wp-blocks', 'wp-editor', 'wp-data', 'wp-dom-ready', 'wp-rich-text' ), wp_get_theme()->get('Version'), true ); } add_action( 'enqueue_block_editor_assets', 'enqueue_gutenberg_default_bold_script' );
2. 创建自定义JavaScript文件
在主题目录下新建js文件夹,创建gutenberg-default-bold.js文件并写入以下代码:
wp.domReady( function() { // 监听编辑器状态变化,处理块选中事件 wp.data.subscribe( function() { const selectedBlock = wp.data.select( 'core/editor' ).getSelectedBlock(); if ( !selectedBlock ) return; const targetBlocks = [ 'core/paragraph', 'core/heading' ]; // 仅处理目标块类型,避免重复初始化 if ( targetBlocks.includes( selectedBlock.name ) && !selectedBlock.attributes._boldInitialized ) { // 标记块已完成加粗初始化 wp.data.dispatch( 'core/editor' ).updateBlockAttributes( selectedBlock.clientId, { _boldInitialized: true } ); // 延迟执行确保编辑器DOM就绪 setTimeout( () => { const editorEl = document.querySelector( `.block-editor-block-list__block[data-block="${selectedBlock.clientId}"] .rich-text` ); if ( !editorEl ) return; // 聚焦编辑器并激活加粗格式 editorEl.focus(); const selection = window.getSelection(); const range = document.createRange(); range.selectNodeContents( editorEl ); range.collapse( true ); selection.removeAllRanges(); selection.addRange( range ); // 给空选区应用加粗格式,确保输入时自动生效 wp.richText.toggleFormat( selection, { type: 'core/bold' } ); }, 100 ); } } ); } );
代码说明:
- 借助
wp.data.subscribe监听编辑器状态,捕获块选中的事件 - 用
_boldInitialized自定义属性标记块已完成初始化,避免重复执行逻辑 - 延迟操作确保块的DOM元素渲染完成,随后聚焦编辑器并激活加粗格式,此时输入的文本会自动被
<strong>标签包裹
内容的提问来源于stack exchange,提问作者randyk69
相关产品推荐
相关产品推荐

