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 =array();

// 一覧取得

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 = "https://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>';

}

}

?>


 


 


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


 


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


 


 


 


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


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


 


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


間違いありません!!


 


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


 


 


 


 


 


 


 


 


 


 


 


 


 


 

この人が書いた記事

VAXの記事をもっと見る

関連する記事