質問: $client->query( $post_type, $blog_id, $user_name, $password, array( 'post_author' => $post_author, 'post_date' => $post_date, 'post_status' => $post_status, 'post_title' => $post_title, 'post_content' => $post_content, //←ここにformに入力したものをワードプレスの本文として投稿する。 'post_excerpt' => $post_excerpt, 'terms_names' => array('category' => $category, 'post_tag' => $tag) ) ); ``` 大体上記のもので上手くワードプレスに記事は送られるのですが、 -- (ハイフンを連続2つ) で、投稿すると投稿失敗となります。 * ハイフン一つだとうまく投稿されます。 例文としまして、 などは連続したハイフン2つ、なのでこの場合に投稿失敗になる具合です... --を 特殊文字 - 2つ、等でやっても、ハイフンはハイフンのようで、 投稿されない形です。 エラーメッセージは↓です。 XML-RPC Error:-32300:transport error - HTTP status code was not 200 ↓内容は参考サイトでこちらにあるようですが、 http://affboy.xyz/post-1504/ XML-RPCは古いのでなるべくやめたほうがいいというもので、 はっきりと私には分かりませんでした。 別途試作の過程でダブルクォーテーションも本文に含まれていると最初はエラーが出ていたのですが、 「ダブルクォーテーションを全てシングルクォーテーションに置換」という str_replaceで置換をすると 無事に投稿され、 現在は 連続したハイフン、 でやはり投稿がつまずきます... --が本文になければ、全てうまくいきます。 XML-RPCというものが古い、という事は検索をしていますとわかるのですが、 一応この方法でとりあえず進みたいと思っております。 以上、HTMLフォームから -- 連続したハイフンがあっても、PHPファイルよりワードプレスに うまく投稿できる方法を お教え頂けましたら、大変に有り難いです。 よろしくお願い致します。
回答: 記号でエラーになることで引っかかるのがWordPressのおせっかいな変換機能ですが、それを止めたらどうなのか試してみてください。 `add_filter( 'run_wptexturize', '__return_false' );` ただ、渡す時点でのエラーのようなので効くかどうか怪しいですが... 上記が効かなければ他に思いつく手段としては、XML-RPCを使ってないので可不可は分かりかねますが、渡す前にハイフンを別の文字列に変換して、渡して保存する際にハイフンに直してやれば良いのではないかと思います。