WP:WordPress(ワードプレス)

「WordPress JSON REST API」を使って、記事一覧を表示

「JSON REST API」を使って、

取得したブログ記事の一覧を表示させてみました。

 

投稿記事を取得する場合には、

http://www.sample.jp/blog/wp-json/posts/

というクエリを使用します。

 

で、JQueryを使った方法はいろいろ紹介されていましたが、

私はPHPで何とかしたい。

 

ので、json_decode()関数を使ってやります。

 

ざっくりですが、コードは以下の様になります。

<?php

$path = "http://www.sample.jp/blog/wp-json/posts/";
$ch = curl_init($path);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close($ch);

//パース
$postObj = json_decode($json, true);

if($postObj === NULL) {
    //パースに失敗した場合の処理を記述
}else{

    foreach($postObj as $post){

        $date = strftime("%Y 年 %m 月 %d 日", strtotime(substr($post["date"], 0, 10)));

print<<<EOF
    <div>タイトル:{$post["title"]}</div>
    <div>{$post["content"]}</div>
    <div>公開日時:{$date}</div>
EOF;
    }

}

?>

かなり単純なコードなのでこのままでは業務では使えないと思いますが、

取り敢えずAPIで取得したデータを表示させるだけであれば、

こんなコードで問題ないと思います。

 

因みに、

このAPIはデフォルトだと新着順に10件まで記事を取得出来ますが、

パラメータを付けてやることで、

記事取得数を設定したり、データを絞り込んだり、ソートすることも可能です。

 

例えば、posts_per_pageを設定してやれば、

指定した件数の記事を取得出来ます。

 

他にも、「orderby」や「order」でソートしたりなど、

様々な事が出来ます。

 

例:http://www.sample.jp/blog/wp-json/posts/?filter[posts_per_page]=5&filter[orderby]=date&filter[order]=DESC

詳しくは、

http://wp-api.org/#posts_retrieve-posts

にまとめられています。

 

このあとは、

記事の詳細ページの設定についてもまとめておきたかったのですが、

長くなりそうなので、

以下の記事でまとめています。

https://deep-blog.jp/engineer/archives/2967

この記事を書いている人
株式会社ディープ
名前足立拓也

メールアドレスadachi@deep-deep.jp

関連記事

最近の記事

  1. ドメインについて
  2. WP:WordPress(ワードプレス)
  3. URL設計(URLデザイン)
  4. URL「ディレクトリ名」と文字アンダースコア(_)とハイフン(-)
  5. SEO対策(外部ファイルの読み込み)
  6. URL リダイレクト
  7. インデックスされない
  8. 内部対策は必要?
  9. CMS(シーエムエス)
  10. SEO業者は必要?

Twitter

アーカイブ

PAGE TOP