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

通过WordPress Rest API创建带换行评论的问题求助

解决WordPress REST API评论换行不生效问题

问题核心

你提交的文本里的\n是字符串字面量,WordPress不会自动解析为换行;同时直接把参数拼在URL中,会导致换行符被错误编码或无法被接口识别。

处理方案

1. 转换换行符为HTML格式

用PHP内置的nl2br()函数,可将字符串中的\n直接转换为HTML的<br>标签,WordPress渲染评论时会自动显示为换行。如果需要和网页端提交的段落效果完全一致,若你的环境能加载WordPress函数库,也可以调用wpautop()函数,它会把换行转换为<p>段落和<br>标签。

2. 修正请求参数传递方式

WP REST API的评论创建接口要求POST参数放在请求体中,而非URL拼接,这样能避免URL编码导致的字符丢失或解析错误。

修改后的代码示例

// 获取原始评论内容并处理换行
$rawContent = $this->request->getVar('content');
// 若内容中的\n是转义后的(即实际为\\n),先去除转义
$rawContent = stripslashes($rawContent);
// 转换为HTML换行格式
$processedContent = nl2br($rawContent);
// 如需完全匹配网页端段落效果,替换为wpautop(需加载WP函数库)
// $processedContent = wpautop($rawContent);

// 构造请求参数数组
$postData = [
    'post' => $this->request->getVar('eventId'),
    'content' => $processedContent
];

// 追加作者名称(如果存在)
if ($this->request->getVar('authorName')) {
    $postData['author_name'] = $this->request->getVar('authorName');
}

try {
    $apiComment = $curl->post('https://xxxx.xx/wp-json/wp/v2/comments', [
        'headers' => [
            'Accept' => 'application/json',
            'Content-Type' => 'application/json'
        ],
        'json' => $postData // 以JSON格式传递请求体参数
    ]);
} catch (Exception $e) {
    // 这里添加异常处理逻辑
}

内容的提问来源于stack exchange,提问作者Lidia K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:45:36