2

我正在使用 Wordpress 的 XMLRPC API 和 WP API 的 IXR_Library php 类。如果我在帖子的正文/内容中使用纯文本或仅简单文本,wp.newPost 工作正常,但是当我发布自动创建的完整 html/短代码内容时,它总是给我这个错误

Array ( [faultCode] => -32700 [faultString] => parse error. not well formed ) 

我要发布的内容是我通常在 WP 中使用短代码的帖子内容,但我想使用 API 通过 php 发布它,因为我正在尝试自动化我的博客。
您可以查看我尝试在下面发布的正文/内容
http://pastebin.com/U94XVZGT
这就是以 XML 调试模式显示的内容(可能似乎已经 html 编码)
下面是通过调试返回的完整 XML 调用和响应,已从中删除用户/密码
http://pastebin.com/26Nyx97K

我真的很感激任何可能的帮助,我已经尝试过 php 的 htmlentities 和 htmlspecialchar 函数来编码我的身体,甚至尝试用 str_replace 替换 [] 括号,因为它们可能会导致它

同样,这当然是由于内容代码,因为我尝试了一个 Hello World 纯内容并且它有效 ----------------------------- -------------------------------
一个更新,刚才我是使用 $_POST 从 textarea 获取 html 内容我尝试在同一个变量中使用相同的内容,但在内容主体周围使用了 ' ' 单引号,现在发布作品,但出现错误

Warning: strpos(): Empty delimiter in wp-includes/class-wp-xmlrpc-server.php on line 4338

所以如果我使用 $body=$_POST['body']; 它不起作用并给出主要错误,但直接使用 $body=' htmlcontent inside '; 有效,但给出了上述 strpos 错误

4

4 回答 4

6

请尝试添加xml 包:

sudo apt-get 安装 php-xml

,这解决了我的问题。

于 2017-07-27T06:49:48.020 回答
1

对于其他遇到此问题的人,我已解决。最后,问题似乎是由于错误的字符编码,我需要传递 UTF8,但内容是以其他一些字符编码(Windows 1)传递的,使得一些文本和其他语言无法解析,我修改了我的代码以使它UTF 8,现在它可以工作了

于 2013-04-25T17:14:55.387 回答
1

我已将密码更改为不包含任何符号,它解决了这个问题。

我仍然不确定最初是什么破坏了一切,但您不妨尝试更改它并重试,看看是否适合您。

于 2015-02-03T15:35:03.663 回答
0

对于遇到此问题的其他任何人,它也可能与 WordPress 错误 #18310 有关。

在http://core.trac.wordpress.org/attachment/ticket/18310/18310-3.diff上有一个 WordPress 补丁

在http://core.trac.wordpress.org/ticket/18310上查看关于他们的 trac 安装的 WordPress 错误报告

于 2013-06-06T02:01:39.240 回答