PR PR

Bloggerブログでサイトマップ・記事一覧を表示させる方法

スポンサーリンク
新着情報
2023.04.09
2023.04.06
2023.04.03
2023.03.19
スポンサーリンク
スポンサーリンク

この記事は2013年12月23日の1年以上前に書かれたものです。現在は状況が異なる可能性がありますのでご注意ください。

記事内に広告が含まれています。

タイトル通りなのですが、
Bloggerブログでこれまで使用させて頂いていた、

スポンサーリンク

スポンサーリンク

配布先のスクリプトが何やらマルウェア判定されたようで…。

ChromeChromium)から、
以下の様な通知が表示されました。

『ウェブサイトの不正なソフトウェアを事前に検出しました。云々…』

これまでサイト上部のページ欄の所に、
http://www.abu-farhan.com/のスクリプトを利用させて頂いていました。

ですが、
このスクリプト内にある上記URLに、
マルウェア・スパイウェアが含まれている可能性があるようなことが記載されていました。

ですので、

当サイトのサイトマップが表示されず、

警告画面のみしかでなくなっていました。
(IEでは表示可能でした。)

同じ上記スクリプトを使用している他の方のBloggerブログで、

サイトマップもしくは記事一覧を閲覧しようとした所、
ブログによって反応がなぜか違いました。

同じように、
マルウェア事前通知が表示されるブログと、
全く同じスクリプトを使用しているサイトでも、
マルウェア事前通知が表示されないブログがありました。

この違いが何なのかはわかりませんが、

サイトマップがないのは何となく嫌なので、
取り急ぎ、
他の方法で同じ様にサイトマップを表示させるようにしました。

現在使用しているスクリプトを、

備忘録として記載しておきます。

var postTitle = new Array();
var postUrl = new Array();
var postMp3 = new Array();
var postDate = new Array();
var postLabels = new Array();
var postBaru = new Array();
var sortBy = "titleasc";
var tocLoaded = false;
var numChars = 250;
var postFilter = "";
var numberfeed = 0;
var cntfeed = 0;
var ii = 0;
var opennew = (typeof openNewWindow != 'undefined' && openNewWindow);
var showdate = (typeof showDate != 'undefined' && showDate);
function loadtoc(a) {
function b() {
if ("entry" in a.feed) {
var d = a.feed.entry.length;
numberfeed = d;
//ii = 0;
for (var h = 0; h < d; h++) {
var n = a.feed.entry[h];
var e = n.title.$t;
var m = n.published.$t.substring(0, 10);
var j;
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "alternate") {
j = n.link[g].href;
break
}
}
var o = "";
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "enclosure") {
o = n.link[g].href;
break
}
}
var c = "";
if ("category" in n) {
for (var g = 0; g < n.category.length; g++) {
c = n.category[g].term;
var f = c.lastIndexOf(";");
if (f != -1) {
c = c.substring(0, f)
}
postLabels[ii] = c;
postTitle[ii] = e;
postDate[ii] = m;
postUrl[ii] = j;
postMp3[ii] = o;
if (cntfeed == 0 && h < 10) {
postBaru[ii] = true
} else {
postBaru[ii] = false
}
ii = ii + 1
}
}
}
}
}
b();
cntfeed++;
}
function showPosts() {
sortBy = "titleasc";
sortPosts(sortBy);
sortlabel();
tocLoaded = true;
displayToc2();

}
function filterPosts(a) {
scroll(0, 0);
postFilter = a;
displayToc(postFilter)
}
function allPosts() {
sortlabel();
postFilter = "";
displayToc(postFilter)
}
function sortPosts(d) {
function c(e, g) {
var f = postTitle[e];
postTitle[e] = postTitle[g];
postTitle[g] = f;
var f = postDate[e];
postDate[e] = postDate[g];
postDate[g] = f;
var f = postUrl[e];
postUrl[e] = postUrl[g];
postUrl[g] = f;
var f = postLabels[e];
postLabels[e] = postLabels[g];
postLabels[g] = f;
var f = postMp3[e];
postMp3[e] = postMp3[g];
postMp3[g] = f;
var f = postBaru[e];
postBaru[e] = postBaru[g];
postBaru[g] = f
}
for (var b = 0; b < postTitle.length - 1; b++) {
for (var a = b + 1; a < postTitle.length; a++) {
if (d == "titleasc") {
if (postTitle[b] > postTitle[a]) {
c(b, a)
}
}
if (d == "titledesc") {
if (postTitle[b] < postTitle[a]) {
c(b, a)
}
}
if (d == "dateoldest") {
if (postDate[b] > postDate[a]) {
c(b, a)
}
}
if (d == "datenewest") {
if (postDate[b] < postDate[a]) {
c(b, a)
}
}
if (d == "orderlabel") {
if (postLabels[b] > postLabels[a]) {
c(b, a)
}
}
}
}
}
function sortlabel() {
sortBy = "orderlabel";
sortPosts(sortBy);
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
firsti = a;
do {
a = a + 1
} while (postLabels[a] == temp1);
b = a;
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function sortPosts2(d, c) {
function e(f, h) {
var g = postTitle[f];
postTitle[f] = postTitle[h];
postTitle[h] = g;
var g = postDate[f];
postDate[f] = postDate[h];
postDate[h] = g;
var g = postUrl[f];
postUrl[f] = postUrl[h];
postUrl[h] = g;
var g = postLabels[f];
postLabels[f] = postLabels[h];
postLabels[h] = g;
var g = postMp3[f];
postMp3[f] = postMp3[h];
postMp3[h] = g;
var g = postBaru[f];
postBaru[f] = postBaru[h];
postBaru[h] = g
}
for (var b = d; b < c - 1; b++) {
for (var a = b + 1; a < c; a++) {
if (postTitle[b] > postTitle[a]) {
e(b, a)
}
}
}
}
function displayToc(a) {
var l = 0;
var h = "";
var e = "Judul Artikel";
var m = "Klik untuk sortir berdasarkan judul";
var d = "Tanggal";
var k = "Klik untuk Sortir bedasarkan tanggal";
var c = "Kategori";
var j = "";
if (sortBy == "titleasc") {
m += " (descending)";
k += " (newest first)"
}
if (sortBy == "titledesc") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "dateoldest") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "datenewest") {
m += " (ascending)";
k += " (oldest first)"
}
if (postFilter != "") {
j = "Klik untuk menampilkan semua"
}
h += "";
h += "";
h += '";
h += '";
h += '";
h += '";
h += "";
for (var g = 0; g < postTitle.length; g++) {
if (a == "") {
h += '';
l++
} else {
z = postLabels[g].lastIndexOf(a);
if (z != -1) {
h += '';
l++
}
}
}
h += "




';
h += '' + e + "";
h += "
';
h += '' + d + "";
h += "
';
h += '' + c + "";
h += "
';
h += "Download MP3";
h += "
' + postTitle[g] + '' + postDate[g] + '' + postLabels[g] + 'Download
' + postTitle[g] + '' + postDate[g] + '' + postLabels[g] + 'Download

";
if (l == postTitle.length) {
var f = 'Menampilkan Semua ' + postTitle.length + " Artikel"
} else {
var f = 'Menampilkan ' + l + " artikel dengan kategori '";
f += postFilter + "' dari " + postTitle.length + " Total Artikel
"
}
var b = document.getElementById("toc");
b.innerHTML = f + h
}
function displayToc2() {
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
document.write("");
document.write('

' + temp1 + "

    ");
    firsti = a;
    do {
    document.write("
  1. ");
    document.write('' + postTitle[a] + "");
    if (showdate) {
    document.write(' - ' + postDate[a]);
    }
    if (postBaru[a] == true) {
    document.write(' - New !! ')
    }
    document.write("

  2. ");
    a = a + 1
    } while (postLabels[a] == temp1);
    b = a;
    document.write("

");
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function toggleTitleSort() {
if (sortBy == "titleasc") {
sortBy = "titledesc"
} else {
sortBy = "titleasc"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function toggleDateSort() {
if (sortBy == "datenewest") {
sortBy = "dateoldest"
} else {
sortBy = "datenewest"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function showToc() {
if (tocLoaded) {
displayToc(postFilter);
var a = document.getElementById("toclink")
} else {
alert("Just wait... TOC is loading")
}
}
function hideToc() {
var a = document.getElementById("toc");
a.innerHTML = "";
var b = document.getElementById("toclink");
b.innerHTML = '?? Menampilkan Daftar Isi '
}
function looptemp2() {
for (var a = 0; a < numberfeed; a++) {
document.write("
");
document.write('Post Link : ' + postTitle[a] + "
");
document.write('Download mp3 : ' + postTitle[a] + "
");
document.write("
")
}
}

このスクリプトを使用して現在は、

サイトマップ(500記事以上対応)を表示しています。

上記スクリプトをコピペして、
拡張子を.jsとしてローカルに一旦保存し、
各々で使用可能なサーバにアップロードして使用してください。

サーバとか言っていますが、

以前にCSS外部ファイル化で紹介した、

GoogleDriveにても可能です。

Bloggerブログ CSS外部化する方法。ページ表示速度を高速化

その他、

ご自分で無料のホームページなどを利用していたり、

プロバイダホームページスペースがあればそこにアップロードしても大丈夫だと思います。

そして最後に、

上記スクリプトをページ内に以下のように記載します。

<script src="スクリプトのURL"></script>

その下に以下スクリプト(500記事以上対応)を記載します。

<script src="(Blogger名).blogspot.com/feeds/posts/summary?alt=json-in-script&amp;callback=loadtoc&amp;max-results=500&amp;redirect=false" type="text/javascript"></script>
<script src="(Blogger名).blogspot.com/feeds/posts/summary?alt=json-in-script&amp;callback=loadtoc&amp;max-results=500&amp;start-index=501&amp;redirect=false" type="text/javascript"></script>
<script src="(Blogger名).blogspot.com/feeds/posts/summary?alt=json-in-script&amp;callback=loadtoc&amp;max-results=500&amp;start-index=1001&amp;redirect=false" type="text/javascript"></script>
<script type="text/javascript">showPosts();</script>

※URLの所はご自分のBloggerブログURLに変更して下さい。

以上で、
今までの様にサイトマップ・記事一覧が表示されます。

ちなみに当サイトのサイトマップは以下URL

サイトマップ
の様に表示されます。

スポンサーリンク
タイトルとURLをコピーしました