MT Data API:アクセスランキング
以下の記事の補足になります。
詳説 Data API 2.0 Vol.6: アクセスデータからアクセスランキングを作成する
'entry' => [
'id' => $entry_id,
'permalink' => $entry->permalink,
'title' => $entry->title,
],
上記の項目を増やします。
以下が増やせる項目です。
Movable Type Data API v2 > Entries
以下の様に反映します。
'entry' => [
'id' => $entry->id,
'permalink' => $entry->permalink,
'title' => $entry->title,
'date' => $entry->date,//公開日
'img' => $entry->customFields,//カスタムフィールド
'category' => $entry->categories,//カテゴリー
'tags' => $entry->tags,//タグ
],
忘れちゃいけないのが以下にも追加する必要がある点です。
. '?fields=title,permalink';
↓ ↓ ↓
. '?fields=title,permalink,date,customFields,categories,tags';
出力するとこんな感じです。
[{"entry":{
"id":123,
"permalink":"https:\/\/ドメイン\/~.html",
"title":"Unicodeエスケープシーケンスで出力",
"date":"2019-10-18T17:41:04+09:00",
"img":[
{"basename":"MTで設定したベースネーム1(画像)","value":"<form mt:asset-id=\"123\" class=\"mt-enclosure mt-enclosure-image\" style=\"display: inline;\"><a href=\"https:\/\/ドメイン\/画像格納場所\/画像名\">画像名<\/a><\/form>"},
{"basename":"MTで設定したベースネーム2(日付)","value":"2019-09-28"},
{"basename":"MTで設定したベースネーム3(HTML)","value":""}
],
"category":[{"id":カテゴリID,"label":"カテゴリ名:Unicodeエスケープシーケンスで出力","parent":"0"}],
"tags":["タグ1:Unicodeエスケープシーケンスで出力","タグ2:Unicodeエスケープシーケンスで出力"]
},
"pageviews":"ページビュー数"}
]
Javascriptデータ引用例1:カスタムフィールドの画像
var entryimage = e.img[0].value;//カスタムフィールドの画像
if(entryimage == ''){//設定されていない場合
var image2 = '共通で使用する「NotFound画像」';
} else {//設定されていれば、カスタムフィールドの画像を表示する。
var image = entryimage.replace(/<("[^"]*"|'[^']*'|[^'">])*>/g,'');
var image2 = '<mt:OtherBlog><$mt:BlogURL$></mt:OtherBlog>images/' + image;
}
Javascriptデータ引用例2:公開日
var whatDay = e.img[1].value;//カスタムフィールドの日付
if(whatDay == null){//設定されていない場合、公開日を表示
var formattedDate = e.date.slice( 0, 4 ) + '年' + e.date.slice( 5, 7 ) + '月' + e.date.slice( 8, 10 ) + '日';
var weekday1 = e.date.slice( 0, 10 );
var today = new Date( weekday1 ) ;
var weekday_list = [ '日', '月', '火', '水', '木', '金', '土' ] ;
var weekday = '(' + weekday_list[ today.getDay() ] + ')';
var day = '<time datetime="' + e.date + '"> ' + formattedDate + weekday + '</time>';
} else {//設定されている場合、「開催日:」として表示
var Date1 = whatDay.slice(0, 4);
var Date2 = whatDay.slice(5, 7);
var Date3 = whatDay.slice(8, 10);
var formattedDate = Date1 + '年' + Date2 + '月' + Date3 + '日';
var weekday1 = whatDay.slice( 0, 10 );
var today = new Date( weekday1 ) ;
var weekday_list = [ '日', '月', '火', '水', '木', '金', '土' ] ;
var weekday = '(' + weekday_list[ today.getDay() ] + ')';
var day = '開催日: <time datetime="' + whatDay + '"> ' + formattedDate + weekday + '</time>';
}
Javascriptデータ引用例3:タグ
var tagsCount = e.tags.length;
if(tagsCount == 0){
var tagsText = '';
} else {
var myClassItems = '<ul class="tags">';
for (let n = 0; n < tagsCount; ++n) {
myClassItems += '<li><a href="/mt/mt-search.cgi?IncludeBlogs=28&tag=' + e.tags[n] + '&limit=20">' + e.tags[n] + '</a></li>';
}
var tagsText = myClassItems + '</ul>';