【问题标题】:Wordpress XMLRPC API post (html) error parse error not well formedWordpress XMLRPC API post (html) 错误解析错误格式不正确
【发布时间】:2013-04-07 01:31:12
【问题描述】:

我正在使用 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 错误

【问题讨论】:

    标签: php xml wordpress xml-rpc


    【解决方案1】:

    请尝试添加 xml 包:

    sudo apt-get install php-xml

    ,这解决了我的问题。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多