WP API(コアに統合される予定)かJetpackを使う以外のやり方をしたことがなかったので、JSON APIプラグインの詳細を把握していませんが、「どこ」が「どう」うまくいっていない状態ですか?
Daisuke Takahashi様、コメントありがとうございます。
確かに、Jetpackでもjson api取得できるのでしたね!ヒントをありがとうございます!
試してみてからまた改めてコメントさせていただきますが、現状は、monacaアプリ内に記述の一切が表示されていない状態で、原因がつかめておりません。
投稿表示させたいwordpressサイトには、jet packのプラグイン利用、json apiが有効化されておりました。その上でjson apiプラグインを有効化したので、競合が発生しているのかな?と考えております。
重ねて質問させて頂きたいのですが、json api を許可するプラグインを複数利用した場合(今回はjson apiとjet pack)、コンフリクトを起こす原因になることは考えられますでしょうか。
https://wordpress.org/plugins/json-rest-api/
WP APIとJetpackのjson配信では配信される要素などが異なります。
パーマリンク(エンドポイント)も異なります。
どちらか一方を使ったほうが良いです。
その上で、WP APIであればプラグイン有効化後、API経由で取得できるかどうかをチェックするコマンドが例示されてますので、それを試してください。
http://wp-api.org/guides/getting-started.html
getJSONでうまくいかないとのことですが、WP API ver 1.2以降であればJSONPが使えます。
これにより、JSONPで処理するのであればサーバー側でCORSの設定は必要ありません。
基本的に
$.ajax({
type: 'GET',
url: 'http://example.com/wp-json/posts/?_jsonp=?',
dataType: 'jsonp'
}).done(function(data, status, xhr) {
// 取得完了後の処理
}).fail(function(xhr, status, error) {
// 取得エラーの処理
});
で最新の投稿10件(件数はWPで指定した数)を取得できます。
WP-APIを利用したHTMLソースを(JSONPではないですが)、GitHubで公開してますので参考にどうぞ。
https://github.com/megumiteam/media-assembly-kit-simple-template
gatespace様、大変参考になるページありがとうございます!
WP API(WP REST API)のver 1.2 プラグインを利用してやってみました。
mac ターミナルにて、
curl -i http://サイトURL.com/wp-json/posts
を叩いて、情報がズラーと出てきましたので、json情報は吐き出しは出来ているのかなと思います。(確認方法が間違っていたりしますでしょうか?)
少し書き換えまして、下記の様に記述を致しました。
<ul class="wpapi"></ul>
<script>
$.ajax({
type: 'GET',
url: 'http://サイトURL.com/wp-json/posts/?_jsonp=?',
dataType: 'jsonp'
}).done(function(data, status, xhr) {
var result = data;
for (var i = result.length - 1; i >= 0; i--) {
$('.wpapi').append('
<li>' +result[i].title+'</li>
');
}).fail(function(xhr, status, error) {
alert("ng");
});
</script>
この記述や過程で、間違っている部分がありましたらご指摘頂けますと幸いです(> <)
実行したいことは
WPに投稿されている情報をアプリに表示(日付+タイトル表示+リンク)し、タップの後にサイト記事表示。
現状
①WP APIプラグイン Ver1.2.2をインストール、有効化(jsonp取得可能バージョン)
②monaca(アプリIDE)にて、jquery呼び出し
③body内に上記コードを記述
結果
一切表示されておりません。
何か考えられることがありましたら、ご指摘頂けると嬉しいです。
何卒よろしくお願い致します。
※追記
ターミナルにて
curl -I http:// サイトURL.com/
を叩いて情報が出てきましたので、こちらでも問題ないかと思います。
MonacaデバッガでConsoleが利用できるかと思いますが何かエラー等は出ていませんか?
Hinaloe様、コメントありがとうございます!
デフォルト状態では表示されておりましたiOSのデバッガですが、
今の記述では、「更新をチェックしています」の表示の後にデバッガアプリが落ちているみたいです。今先ほど気がつきました。
記載致しました私の手順自体には間違いは無さそうでしょうか。(> <)
curl -i http://example.com/wp-json/posts
でjsonの情報が出力されているのであれば、WPやプラグイン、サーバには問題ないでしょう
(jq 入れると整形してくれるので便利です。)
Monacaは使った事ないのでわからないのですが、jQueryつかえるのであれば、試しにローカルサーバーにHTML+jQueryでコード書いて見ればブラウザのデバッガーでエラーがあれば確認できませんかね?
jQueryの書き方が間違ってるのか、ajax実行時の処理がおかしいのか、切り分けはできると思います。
gatespace様、ご返信が遅くなりすみません。
試してみたいと思います。
大変ありがとうございます!
また、追って状況をこちらに投稿させて頂きたいと思います!