blog

BLOGブログ

ARCHIVES

VAX

簡単なAPIを使ってwordpressのデータを取得。APIって便利だね。

6bac08fa789714b72d45463a42ef68b0_s

 

全国1000万3人のファンもみなさま。

お疲れさまです。

 

 

VAXだよ。

 

 

先ほど阿蘇山が噴火したようです。。。

最近の日本はなんかいろいろありすぎてあれですね。。。。

 

 

さて、今回はきっとどこかに需要があるであろうwordpressの記事データをAPIを使って取ってみたいと思います。

 

どんな場面で使うかと言いますと

自社サイトなんかではwordpressを入れてなくて別サーバーでブログをやっている。

あーブログの記事も自社サイトに表示させてーなってなったときです。

 

あるよねー

 

きっとある。

 

 

もしくは気になるあの子やあの子、なんならもうみんなに自分をもっと見てほしい!

そんな欲求を叶えるものです。

 

うん。

 

 

 

ではまずはwordpressをインストールサーバーに

ファイルを設置しましょう!

 

 

get_data.php


 

 

中身は

 

 

 

<?php
require_once('../blog/wp-load.php');
$showposts = (isset($_GET["showposts"]) && !empty($_GET["showposts"])) ? $_GET["showposts"] : "";
$cat = (isset($_GET["cat"]) && !empty($_GET["cat"])) ? $_GET["cat"] : "-1";

 

$data ="";

// 一覧取得
query_posts( array( 'showposts' => $showposts,
'cat' => $cat,
'post_status' => 'publish' )
);

while (have_posts()) : the_post();

$cats="";

// 投稿日時
$blog_date = the_time('Y.m.d');

// ブログタイトル
$blog_title = get_the_title();

// ページID
$link_id = get_the_ID();

// アイキャッチ情報
if(has_post_thumbnail()) {
$image_id = get_post_thumbnail_id();
list($image_url, $image_width, $image_height) = wp_get_attachment_image_src($image_id, full);
} else {
$image_url = "";
$image_width = "";
$image_height ="";
}
//  ページ内容
$get_the_content = str_replace(array("&nbsp;","\r\n","\n","\r"), '', strip_tags(get_the_content()) );
$text_check = ( mb_strlen($get_the_content) > 120 ) ? mb_substr($get_the_content ,0, 120) . '...' : $get_the_content;

 

 

$data[] = array('date' => $blog_date,
'title' => $blog_title,
'pid' => $link_id,
'image_url' => $image_url,
'content' => $content
);
endwhile;
wp_reset_query();

 

 

//jsonとして出力
header('Content-type: application/json');
echo json_encode($data);
}
?>

 

//  ページ内容この部分は

ページ内容をそのまま取るとすごく長くなるので

アーカイブなどで使うようにしてあります。

 

全文取る場合は

 

'content' => $content

この部分を

 

'content' => get_the_content()

 

に変えてください。

 

 

 

 

 

require_once('../blog/wp-load.php');

 

この部分のパスはファイルを設置した場所によって異なります。

 

例えば

wordpressを設置した場所が

 

example.com/blog/

 

 

get_data.phpの設置した場所が

 

example.com/get_data.php

 

 

この場合

 

require_once('./blog/wp-load.php');

 

こうなります。

 

 

 

これで例えば

 

エフエフエフエフマンのカテゴリー情報を取得する場合

 

category の id が 4

全ての場合は   -1

 

 

コチラの情報を元に URLを構成すると

 

//www.e-f.co.jp/demo/2015/get_json.php?showposts=-1&cat=4

 

こちらにアクセスすると

 

[{"date":"2015.07.25",
"title":"\u3046\u3064\u75c5\u306e\u30d2\u30fc\u30ed\u30fc\uff1f \u30a8\u30d5\u30a8\u30d5\u30a8\u30d5\u30a8\u30d5\u30de\u30f3vs\u53f0\u98a811\u53f7",
"pid":4424,
"url":"http:\/\/www.e-f.co.jp\/blog\/2291\/",
"image_url":"http:\/\/www.e-f.co.jp\/wp\/wp-content\/uploads\/2015\/07\/0\u30a2\u30a4\u30ad\u30e3\u30c3\u30c101.jpg",
"content":"\u307f\u...(略) "},

 

こんな感じで json データとして固まりがいくつか出てきます。

 

 

これを使って表示側で処理します。

 

 

<?php

$get_data = "//www.e-f.co.jp/demo/2015/get_data.php?showposts=-1&cat=4";
$json = @file_get_contents($get_data);
if ($json === false) {
echo "データ取得失敗。";
return;
} else {
$obj = json_decode($json, true);
for ($i =0;  $i < count($obj ); $i++){

echo '投稿日時:' . $obj [$i]["date"] .'<br>';

echo 'タイトル:' . $obj [$i]["title"] .'<br>';

echo '記事ID:' . $obj [$i]["pid"] .'<br>';

echo '記事URL:' . $obj [$i]["url"] .'<br>';

echo 'アイキャッチ画像:' . $obj [$i]["image_url"] .'<br>';

echo '記事内容:' . $obj [$i]["content"] .'<br>';

}

}

?>

 

こういった感じで吐き出します。

 

demo

 

 

あとは処理側でリスト形式にしたり、記事の詳細を取ってきたりいろいろ応用ができると思います。

 

 

 

次回は この応用で簡単なスケジュールカレンダーを作ってみたいと思います。

時の経つのは早いものでもうすぐ秋です。

 

おでんと熱燗の時期です。

間違いありません!!

 

楽しく秋の味覚が楽しめるようみんな頑張っていきましょう!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

この人が書いた記事

VAXの記事をもっと見る

関連する記事