REST API 記述例

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

RSET API でhtmlにワードプレスの投稿のリストを表示する例をメモしておきます。

htmlの記述

<script type="text/javascript">
      jQuery(function() {
          jQuery.getJSON( "~/wp-json/wp/v2/posts?per_page=5&categories=13", function(result) {
              jQuery.each(result, function(i, item) {
        var date_data = new Date(item.date);
        var year = date_data.getFullYear();
        var month = date_data.getMonth() + 1;
        var day = date_data.getDate();
        var category = item.category_name;
				category = category.join( "/" );
                 jQuery('.news').append('<dt><span class="date">' + year + '.' + month + '.' + day + '</span><span class="category">' + category + '</span></dt><dd><a href="'+ item.link + '">' + item.title.rendered + '</a></dd>');
              });
          });
      });
    </script>
<dl class="news"></dl>

カテゴリーを取得する関数(テーマ関数)

add_action( 'rest_api_init', 'register_category_name' );

function register_category_name() {
    register_rest_field( 'post',
        'category_name',
        array(
            'get_callback'    => 'get_category_name'
        )
    );
}

function get_category_name( $object ) {
  $category = get_the_category($object[ 'id' ]);
	for ($i = 0; $i < count($category); ++$i) {
		$cat_name[$i] = $category[$i]->cat_name;
	}
  return $cat_name;
}

PHPの例

<?php
  $url = '~/wp-json/wp/v2/posts?per_page=1';
  $json = mb_convert_encoding(file_get_contents($url), 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
  $arr = json_decode($json,true);
?>
<?php foreach ($arr as $data):
    $title = $data['title']['rendered'];
    $date = date('Y.m.d', strtotime($data['date']));
    $link = $data['link'];
?>
<div class="news_text">
	<span class="date"><?php echo $date; ?></span>
	<a href="<?php echo $link; ?>"><?php echo $data['title']['rendered']; ?></a>
</div>
  <?php endforeach; ?>