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

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

新規登録して質問してみよう
ただいま回答率
85.49%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

WordPress

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

PHP

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

Q&A

解決済

1回答

2690閲覧

【WordPress/XML-RPC&PHP】外部投稿について

T.N.

総合スコア22

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

WordPress

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

PHP

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

0グッド

0クリップ

投稿2015/08/17 16:30

PHPを独学で学んでいる初心者です。

WordPressに対してXML-RPCとPHPを用いて
外部投稿したいと考えています。

MAMPを用いてローカル開発環境にWordPressを入れて、
その中で外部投稿の実験をしているのですが上手くできません。

以下のページのサンプルコードを流用しているのですが、
私の理解不足のせいか投稿ができません。。。
http://nekoriki.net/47

ディレクトリ構成は以下のとおりです。

MAMP
htdocs
IXR_Library.php ※ライブラリ
Local_ExternalPost_to_WordPress.php ※外部投稿プログラム
wordpress ※WordPress公式サイトからDLしたフォルダ

どうかご教示のほどよろしくお願いします。

lang

1<?php 2//エラーをブラウザ上に表示させる関数 3ini_set('display_errors', 1); 4 5//inctioのライブラリ呼び出し 6include_once('IXR_Library.php'); 7 8echo "あいうえお"; 9 10//example.comは投稿先アドレスに変える 11$client = new IXR_Client("http://localhost/wordpress/xmlrpc.php"); 12 13$status = $client->query( 14 "wp.newPost", //使うAPIを指定(wp.newPostは、新規投稿) 15 1, // blog ID: 通常は1、マルチサイト時変更 16 root//$wp_username, // ユーザー名 17 root//$wp_password, // パスワード 18 array( 19 'post_author' => unknown_id, // 投稿者ID 未設定の場合投稿者名なしになる。 20 'post_status' => 'publish', // 投稿状態 21 'post_title' => '自動投稿テスト「タイトル」です。', // タイトル 22 'post_content' => '自動投稿テスト「本文」です。', // 本文 23 //'terms' => array('category' => array(1)) // カテゴリ追加 24 ) 25); 26if(!$status){ 27 die('Something went wrong - '.$client->getErrorCode().' : '.$client->getErrorMessage()); 28} else { 29 $post_id = $client->getResponse(); //返り値は投稿ID 30} 31?> 32

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「投稿ができません」と言っても、原因はいろいろ思い浮かびます。今回の場合だと、

  • Wordpress側のXML-RPC機能は有効か?
  • PHPのプログラムが間違っていないか?

が浮かびました。こういった問題の絞り込みは質問する時に下記の内容を明確にしていればある程度絞り込めます。

  • エラーが出ている場合はエラー内容も書きましょう
  • エラーが出ていない場合は「エラーが出なかった」ことを書きましょう
  • アクセスログやエラーログ等の場所がわかるのであれば、リクエストした日時周辺のログを貼りましょう

さて、問題点を絞り込むため、WordpressのXML-RPCが有効に機能しているかをまず確認しましょう。

Chromeをお使いであれば、XML-RPC Clientという拡張があるので、それを使ってWordpressに投稿できるか確認してください。

投稿2015/08/18 00:45

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

T.N.

2015/08/18 01:32

ご回答ありがとうございます! 結論から言うと、単なるPHPの記述ミス(パースエラー)でした。 ini_set('display_errors', 1); ではエラーが出なかった、 というより白紙のページになってしまっていました。 tail-Fコマンドを使ってログを見てみたら、 パースエラーがあったことが分かりました。 今後はエラー表示の有無や内容、 該当ログ部分も含めて質問するようにします。 ご教示いただき、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問