You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用python-wordpress-xmlrpc上传WordPress文章时br标签丢失如何处理

问题原因

你遇到的自动插入<p>标签、移除<br>标签的问题是WordPress核心自带的wpautop文本格式化过滤器导致的,和你使用的python-wordpress-xmlrpc库无关。该过滤器默认会自动解析内容中的换行,将双换行转换为<p>标签、单换行转换为<br>标签,同时会清理掉它判定为冗余的手动<br>标签。

解决方案

方案1:仅修改客户端上传代码(推荐,无需调整站点配置)

WordPress的古腾堡编辑器HTML块内容会被标记为原生HTML,不会被wpautop过滤器格式化,你只需要把需要保留原始格式的内容用对应的注释标记包裹即可,修改后的代码如下:

post = WordPressPost()
post.title = 'title'
# 用<!-- wp:html -->和<!-- /wp:html -->包裹原始HTML内容,跳过自动格式化
post.content = '<!-- wp:html --><div>This is a test article<br><br>There are some linebreaks<br><br>here<br></div><!-- /wp:html -->'
post.post_status = 'publish'
wp.call(NewPost(post))

方案2:调整WordPress服务端配置

如果你需要全局或者大范围关闭该格式化逻辑,可以选择以下任意一种方式修改站点当前主题的functions.php文件:

  • 全局关闭所有内容的wpautop格式化:
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
  • 仅关闭XML-RPC发布内容的wpautop格式化,不影响站点其他内容的正常渲染:
add_filter('xmlrpc_default_post_fields', function($fields, $method) {
    if ($method === 'wp.newPost') {
        remove_filter('content_save_pre', 'wpautop');
    }
    return $fields;
}, 10, 2);

内容的提问来源于stack exchange,提问作者Milano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:48:02