2012-04-22

Blogger でサイトマップを表示するツールを、投稿が 500 件以上あるブログにも対応させてみた

こないだ、Blogger Tips でこんなのを書いた。 紹介したのは、短いコードを挿入するだけで、自動的にブログの投稿をラベル別に一覧にしてくれる便利なツール。とはいえ、何分 Blogger のフィードを JSONP で出力させているため、投稿が 500 件までしか取得できないという制約が…。

それで、blogtoc のコードを眺めまわして、コールバックに指定されている関数でデータの取得と表示を一手に行っていたのを、取得のみにして、複数のフィードのデータを読み込んだ後に表示の関数を呼び出すことにした。

元がこちら(オリジナルを整形したもの)。 で、複数フィードを指定できるようにしたのが、こちら。
導入方法

Blogger の管理画面「ページ」タブのリンクを「新しいページ」→「空白のページ」と進み、出てきたページエディタを「HTML」モードにした上で、本文の位置に、以下のコードを入力。赤字の部分は自身のブログの URL に変更すること。

<script type="text/javascript" src="http://tools.kuribo.info/blogtoc/blogtoc-plus.js"></script>

<script type="text/javascript" src="http://www.kuribo.info/feeds/posts/summary?alt=json-in-script&callback=loadtoc&max-results=500&redirect=false"></script>
<script type="text/javascript" src="http://www.kuribo.info/feeds/posts/summary?alt=json-in-script&callback=loadtoc&max-results=500&start-index=501&redirect=false"></script>
<script type="text/javascript" src="http://www.kuribo.info/feeds/posts/summary?alt=json-in-script&callback=loadtoc&max-results=500&start-index=1001&redirect=false"></script>

<script type="text/javascript">showPosts();</script>

3 行目からの各フィードで、投稿を 500 件ずつ取得するので、start-index パラメータで、投稿の開始番号を 500 番ずつずらして指定すること。ブログで必要な投稿分この行を増やすといいかと。ちなみに、指定なしは start-index=1 と解釈される。

最後に JavaScript の showPosts 関数(blogtoc-plus.js で定義)を呼び出して、取得した投稿データをソートして書き出す、と。

ブログの投稿数が 500 件を超えている人は、一度お試しを。

参考:
追記(2012-06-03)

こういうコメントが。
NEW!がかなり古い投稿にもついてしまうのですが、なぜでしょうか?
タイトルと一緒に投稿日付を表示することはできせんでしょうか?
別ウィンドウで開くようにすることは可能ですか?
フィードごとに、新しい投稿 10 件「NEW!」が表示されるようになっていました。元々のコードは複数のフィードを読み込むようになっていないので、まあ当然といえば当然。最初のフィードの新投稿 10 件だけ「NEW!」をつけるように修正しました。

「導入方法」で示したコードの

<script type="text/javascript">
  var openNewWindow = true;
  var showDate = true;
</script>

というのを挿入すると、リンクを新しいウィンドウで開く、投稿の日付を表示するというオプションが有効になるようにしました。

参考:
スポンサードリンク:

お願い:
「このエントリ役に立った!」と思ったら、ぜひ フィード 登録をお願いします。 

14 comments:

  1. これは凄いですね、試しにやってみましたが本当に簡単に出来ました。
    ありがとうございます。

    ReplyDelete
  2. 一応テストはしたものの、ちょっと自信がなかったため、こちらで公開しました。ちゃんと動いているようでよかったです。コメントありがとうございます。

    ReplyDelete
  3. いつも参考にさせてもらってます。すごーい、便利ですね。投稿編集画面とはまた違って、過去投稿を整理するのにも役立ちそうです。ありがとうございます。
    3つ質問です。
    NEW!がかなり古い投稿にもついてしまうのですが、なぜでしょうか?
    タイトルと一緒に投稿日付を表示することはできせんでしょうか?
    別ウィンドウで開くようにすることは可能ですか?
    http://dutchphotos.blogspot.nl/p/blog-page_02.html
    お時間の許すときに教えていただければ助かります。よろしくおねがいします。

    ReplyDelete
  4. コメントありがとうございます。コード修正しました。
    記事に使い方を追記していますので、ご確認ください。
    これからも、よろしくお願いします。

    ReplyDelete
  5. 早速のご対応感謝です。
    で、コード追加こころみたのですが・・うまくいきません (;^_^A

    3点とも解決できませんでした。これをヒントになんとか自力解決しようと思ったものの、ギブアップ。重ね重ねすみません・・
    うまく表示されない可能性はなんでしょうか?よろしくお願いします。

    ReplyDelete
  6. え、前回示された URL 上で、新しいコード、ちゃんと動いているようですが…。スクリプトの古いキャッシュがブラウザに残っているのではないかと思います。

    http://tools.kuribo.info/blogtoc/blogtoc-plus.js

    を再読み込みしたあと、サイトマップページを表示してみてくださーい。

    ReplyDelete
  7. あと、Google Analytics のトラッキングコードでエラーが出ているようです。
    コードを加工せずに(<br /> とか入れずに)そのまま貼り付けると、改善されると思います。

    ReplyDelete
  8. 実は、私もキャッシュ?と思って試行錯誤してみたのですが・・別のPCでみたら上手くいきました。
    お手数かけました。

    こちらで紹介させていただきました。
    http://dutchphotos.blogspot.nl/2012/06/blogger.html
    2007年にやっぱりクリボウさんにお世話になった形跡が・・・これも一覧のおかげです。本当に感謝。これからもよろしくおねがいします。
    http://dutchphotos.blogspot.nl/2007/07/blog-post_3704.html

    ReplyDelete
  9. ありがとうございます。標準 Blogger にはこういう一覧機能がないのでかったるいなあと思っていたのですが、これで解決しました。小生の三つのブログにさっそく導入させていただきました。

    ReplyDelete
  10. 少し blogger をしてないと、昔は出来たこともすっかり忘れてしまい途方にくれます。
    クリボウさんの記事は忘れんぼうに超お役立ちです。
    僕も設置させて頂きました。
    ありがとうございます!

    ReplyDelete
  11. はじめまして。とても役に立つ機能ですね。

    4コマ漫画のサイトをやっておりまして、新しくいらした方が古い記事から読めるように
    できたらなあと思うのですが、一番古い記事から表示することは可能でしょうか?
    現在は、ラベル別にあいうえお順に並んでいるみたいなのですが...

    http://sakura4koma.blogspot.jp/p/blog-page_21.html

    解決法がございましたら、ご教示いただけますでしょうかm(_ _)m

    ReplyDelete
  12. 大変、参考になりました。ありがとうございました。

    ReplyDelete
  13. 世界の情報・笑い・幸せをブログに載せております!最近では少しづつアクセスも増えてきております^^よかったら一度是非見に来ていただければと思いますm(__)m
    www.kamiomo.com

    ReplyDelete
  14. 世界の情報・笑い・幸せをブログに載せております!最近では少しづつアクセスも増えてきております^^よかったら一度是非見に来ていただければと思いますm(__)m
    www.kamiomo.com

    ReplyDelete

Zenback - Everyone's Related Posts