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 を使用してテキストエリアから 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

1

この問題を抱えている他の人に、私はそれを修正しました。最後に、問題は間違った文字エンコーディングが原因であると思われました.UTF8を渡す必要がありましたが、コンテンツが他の文字エンコーディング(Windows 1)で渡されたため、一部のテキストや他の言語が解析できなくなりました。 UTF 8 で動作するようになりました

于 2013-04-25T17:14:55.387 に答える
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 に答える