メニュー

メニュー

2017年3月3日金曜日

Bloggerで個別ページに最新記事の一覧を表示する方法(国別リダイレクト対応版) | 日々のメモ帖 by holidaybuggy1980 holidaybuggy1980
300 300

Bloggerで個別ページに最新記事の一覧を表示する方法(国別リダイレクト対応版)

こちらの記事にて、個別ページに最新記事の一覧を表示する方法を書きましたが、国別リダイレクトにより、アクセスしているアドレスは.jpドメインなのに最新記事のリンクは.comドメインになっている状態なので、アクセスした国別ドメインでリンクを作成する方法に変更しました。


変更箇所


その1

var postUrl = json.feed.entry[i].link[j].href;

にて、URLを取得しているのですが、こちらをreplace()メソッドを使って下記のコードを上記コードのすぐ下に追加してルート相対パスの形をとりました。

postUrl = postUrl.replrace("http:\/\/サブドメイン.blogspot.com\/","\/");
postUrl = postUrl.replrace("https:\/\/サブドメイン.blogspot.com\/","\/");

replace()メソッド


replrace("置き換えたい文字列","置き換えた文字列");

のように設定すると、該当する最初の文字列のみ置き換えます。
今回は、これをうまく使って、httpの時と、httpsの時の両方を条件分岐なしで設定しました。

該当するすべての文字列を置き換える場合は、

replrace(/置き換えたい文字列/g,"置き換えた文字列");

のようにします。

その2

<script src="http://holidaybuggy.blogspot.com//feeds/posts/summary?orderby=published&amp;max-results=(表示させたい件数)&amp;alt=json-in-script&amp;callback=mycallback"></script>

をルート相対パスにし、下記のようにしました。

<script src="/feeds/posts/summary?orderby=published&amp;max-results=(表示させたい件数)&amp;alt=json-in-script&amp;callback=mycallback"></script>

参考までに、変更したコードを下記に載せておきます。

<script type="text/javascript">
   function mycallback(json) {
     for (var i = 0; i < json.feed.entry.length; i++) {
       for (var j = 0; j < json.feed.entry[i].link.length; j++) {
         if (json.feed.entry[i].link[j].rel == 'alternate') {
         var postUrl = json.feed.entry[i].link[j].href;
         postUrl = postUrl.replrace("http:\/\/サブドメイン.blogspot.com\/","\/");
         postUrl = postUrl.replrace("https:\/\/サブドメイン.blogspot.com\/","\/");
         break;
       }
     }
     var postTitle = json.feed.entry[i].title.$t;
     var postDate = json.feed.entry[i].published.$t;
     var postDate_y = postDate.substring(0,4);
     var postDate_m = postDate.substring(5,7);
     var postDate_d = postDate.substring(8,10);
     var postDate_ymd = postDate_y + "/" + postDate_m + "/" + postDate_d + " ";
     var item = '<a href=' + postUrl + '>' + postdate_ymd  + postTitle + '</a><br /><br />';
     document.write(item);
   }
 }
 </script>
 <script src="/feeds/posts/summary?orderby=published&amp;max-results=(表示させたい件数)&amp;alt=json-in-script&amp;callback=mycallback"></script>


以上、参考にしていただけたら幸いです。

0 件のコメント:

コメントを投稿