質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • PHP

    20326questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    7201questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • XAMPP

    497questions

    XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

ワードプレスへの外部からの投稿プログラムを作成したいと考えており、 -- 連続ハイフンが本文になければ無事に投稿されるのですが…。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 553

gugupoo

score 9

外部からの投稿でワードプレスに記事を投稿するというツールを作成したいと考えております。
現在はWindows10にxamppをインストールしてローカル環境で試作段階です。

HTMLファイルのform箇所にタイトルや本文を入力して、PHPファイルに遷移させ、
$_POST["~~~~~"] という具合で各内容を受け取り、
変数にいれて投稿する、というイメージでやっています。

http://absg.hatenablog.com/entry/2015/11/06/204730
↑をほぼ参考にして、

//投稿

$status = $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つ、なのでこの場合に投稿失敗になる具合です…
    --を 特殊文字 &#45; 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ファイルよりワードプレスに
うまく投稿できる方法を
お教え頂けましたら、大変に有り難いです。
よろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2017/09/05 22:22

    質問文のコードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。

    キャンセル

回答 1

checkベストアンサー

0

記号でエラーになることで引っかかるのがWordPressのおせっかいな変換機能ですが、それを止めたらどうなのか試してみてください。
add_filter( 'run_wptexturize', '__return_false' );
ただ、渡す時点でのエラーのようなので効くかどうか怪しいですが…

上記が効かなければ他に思いつく手段としては、XML-RPCを使ってないので可不可は分かりかねますが、渡す前にハイフンを別の文字列に変換して、渡して保存する際にハイフンに直してやれば良いのではないかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/06 13:51

    お教え頂けまして、大変にありがとうございます。
    function.phpにadd_filterを入れてみましたがやはり投稿できないままでした…
    と言いましても、function.phpを編集できる権限がないブログについても、外部からうまく投稿したい、とは思っております。

    元々XML-RPCというものにこだわろうとしている点が2つほどあったのを自分でも思い返してみると、
    ワードプレスのカテゴリ一覧をREST APIで取得したところ、うまくは取得できたのですが、
    他サイトからワードプレスに引っ越ししてきたブログでは
    カテゴリを全て取得できないものがありました。
    そこでXML-RPCを使ってみたところ、試験した3つくらいのワードプレスブログから
    全てカテゴリが取得できたため、これでツールを完成させたいと考えました。

    もしREST APIで投稿はしっかりできるなら、 ブログのカテゴリその他情報取得はXML-RPCで行い、
    投稿自体をREST APIで行えば、無事 -- についても行えるであろうと思い、
    ここで方針を切り替えまして、 RESTAPIで投稿を行う、でいってみたいと思います!

    ただ、XML-RPC自体が良い悪い、新しい古いに関わらず、なんとなく惹かれていってしまった理由は
    同様の目指すプログラムの先例である、WindowsliveWriterでXML-RPCを使っていそうな気配があったためであります(現在は最新版でテスト投稿等は行っていませんが、おそらく -- 等もWLWでは全然問題なく投稿できることだと想像は簡単にできました・・)


    私の方の、全般的な環境や細部の事を、私が混乱し
    言葉でしっかり再現できないため、このままでは進捗も可能性としては少ないと考えます;


    そもそもXML-RPCで既存のワードプレスブログ、他よりワードプレスに引っ越してきたブログ、
    どちらも、カテゴリを取得するPHPの部分も我流で適当に流したようなもので・・
    RESTAPIをしっかり勉強すれば、RESTAPIで全て改善できた可能性はあります・・。

    ひとまず、XML-RPCでカテゴリを取得し、RESTAPIで投稿をしあげるというプログラムの完成を目指し、
    WLW等で使われてるXML-RPCは、別個でまたの機会に追及致したいと思います。
    以上長くなってしまいましたが、大変に有難うございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    20326questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    7201questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • XAMPP

    497questions

    XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

  • トップ
  • PHPに関する質問
  • ワードプレスへの外部からの投稿プログラムを作成したいと考えており、 -- 連続ハイフンが本文になければ無事に投稿されるのですが…。