WordPress段落字体大小被<head>中额外代码覆盖,该代码来源何处?
问题分析与解决
这段p{font-size: var(--wp--preset--font-size--medium);}内联样式的来源是WordPress的动态区块样式生成机制,并非直接来自区块的静态style.css文件,具体触发场景如下:
1. 主题的theme.json配置
WordPress 5.8+引入的theme.json是全局样式配置的核心,如果你当前主题的theme.json中定义了全局字体大小预设,且设置了段落的默认字体大小,WordPress会自动生成并注入这段内联CSS。
检查主题根目录下的theme.json,重点看settings.typography节点:
{ "settings": { "typography": { "fontSizes": [ { "name": "Medium", "slug": "medium", "size": "18px" } ], "defaultFontSize": "medium", // 或针对段落区块单独设置 "blocks": { "core/paragraph": { "typography": { "fontSize": "medium" } } } } } }
只要存在类似配置,WordPress就会自动生成wp-block-paragraph-inline-css这个内联样式块。
2. 主题自定义器的排版设置
部分主题会通过自定义器(外观 > 自定义 > 排版)提供可视化的字体大小设置,当你设置了段落的默认字体大小后,主题会调用WordPress的wp_add_inline_style函数,将这段样式注入到页面<head>中。
3. WordPress区块API的动态样式生成
WordPress的区块系统会根据区块的默认属性、主题全局设置,动态生成必要的内联样式,避免加载冗余的静态CSS文件。这个过程由后台PHP函数(如wp_get_block_style_data)处理,最终输出带有wp-block-paragraph-inline-css ID的style标签。
验证与解决方法
- 验证来源:切换到WordPress默认主题(如Twenty Twenty-Four),如果这段样式消失,说明是当前主题的配置导致的。
- 修改样式:直接在theme.json中调整段落的默认字体大小,或添加自定义样式覆盖:
.wp-block-post-excerpt p { font-size: 16px !important; /* 替换为你需要的大小 */ } - 移除内联样式:如果需要彻底移除这段内联CSS,可以在主题的functions.php中添加以下代码:
add_action('wp_enqueue_scripts', function() { wp_dequeue_style('wp-block-paragraph-inline-css'); }, 100);
内容的提问来源于stack exchange,提问作者Jon Stead
相关产品推荐
相关产品推荐

