2009年08月30日

seesaaブログで総記事数を表示する方法 このエントリーをはてなブックマークに追加

seesaaブログで総記事数を表示させたいねぇとふと思った。
どーすればよいかちょっと考えた。

方針
  • まず前提としてHTMLファイルで全てのカテゴリを表示していること。
  • カテゴリの横の()内に記事数が書いてある
  • これをすべて足せば総記事数になるであろう。
で、以下、その方法
1. seesaa blogの管理画面から
「デザイン」→「コンテンツ」→「カテゴリ」を選ぶ
2.カテゴリの「コンテンツHTML編集」を選ぶ
3.以下のように変更
変更前:
<div class="sidetitle"><% content.title %></div>
<div class="side">
<% content.header -%>
<% loop:list_category -%>
<a href="<% category.page_url %>"><% category.name | tag_break %></a>(<% category.article_count | __or__ | echo("0") %>)<br />
<% /loop -%>
<% content.footer -%>
</div>
変更後:
<div class="sidetitle"><% content.title %></div>
<div class="side">
<% content.header -%>
総記事数:<span id="totalArticleCount"></span>件<br />
<% loop:list_category -%>
<a href="<% category.page_url %>"><% category.name | tag_break %></a>(<span class="ccount"><% category.article_count | __or__ | echo("0") %></span>)<br />
<% /loop -%>
<% content.footer -%>
</div>
これを保存する。

4.「デザイン」→「HTML」で現在利用しているHTMLを以下のように編集 </body>の直前に以下を入力
<script type="text/javascript">
<!--
var t=0;
var s = document.getElementsByTagName("span");
for(var i=0 ;i<s.length;i++){
	if (s[i].className=="ccount"){
		t= t+parseInt(s[i].childNodes[0].nodeValue);
	}
}
var totalCount = document.getElementById("totalArticleCount");
totalCount.innerHTML=t;
// -->
</script>
総記事数を表示する場所はまあどこでも選べそうなので4の部分を適当に変えればよいであろう。
そーすると、右のカテゴリが表示されている部分を見ていただければわかるように総記事数が表示されていると思う。

Internet Explorer 8 , Firefox3.5.2 , Google Chrome 2.0.172.43 では動いたよーだ。
まああまり重要はないかもしれんが、こんなこともできるってことで。

その他のSeesaaブログのカスタマイズ方法は以下のサイトを参考に。
posted by りょーち | Comment(7) | TrackBack(0) | Web周辺技術
この記事へのコメント
はじめまして。
テトラポッドと申します。
はじめての被リンクだったので、とても嬉しかったです。
ありがとうございました。

私もちょっと挑戦してみました。
↓こんなのはどうでしょうか?
<% content.title %>

<% content.header -%>

<% loop:list_category -%>
<% category.name | tag_break %>(<% category.article_count | __or__ | echo("0") %>)
<% /loop -%>
<% content.footer -%>


あるいは、↓こんなのはどうでしょうか?
<% content.title %>

<% content.header -%>
Home
<% loop:list_category -%>
<% category.name | tag_break %>(<% category.article_count | __or__ | echo("0") %>)
<% /loop -%>
<% content.footer -%>


※せっかくのネタなので、もしかしたら、自分のブログでも記事にしちゃうかもしれません。
そのときは、すみません。
Posted by テトラポッド at 2009年09月07日 01:06

すいません。
自分のブログのコメント欄でテスト投稿して問題なかったので、そのまま書き込んだのですが、いくつかタグが飛んで意味不明になってしまいました。
「<」「>」を全角にして再度投稿いたします。

↓こんなのはどうでしょうか?
<div class="sidetitle"><% content.title %></div>
<div class="side">
<% content.header -%>
<script language="JavaScript" type="text/javascript">document.write('総記事数 (' + (<% loop:list_category -%><% category.article_count | __or__ | echo("0") %> + <% /loop -%>0) + ')<br />');</script>
<% loop:list_category -%>
<a href="<% category.page_url %>"><% category.name | tag_break %></a>(<% category.article_count | __or__ | echo("0") %>)<br />
<% /loop -%>
<% content.footer -%>
</div>

<div class="sidetitle"><% content.title %></div>
<div class="side">
<% content.header -%>
<a href="<% blog.page_url %>">Home</a><script language="JavaScript" type="text/javascript">document.write(' (' + (<% loop:list_category -%><% category.article_count | __or__ | echo("0") %> + <% /loop -%>0) + ')');</script><br />
<% loop:list_category -%>
<a href="<% category.page_url %>"><% category.name | tag_break %></a>(<% category.article_count | __or__ | echo("0") %>)<br />
<% /loop -%>
<% content.footer -%>
</div>

また、上手く表示されてなかったら、すいません。
Posted by テトラポッド at 2009年09月07日 01:20
テトラポッドさん、こんにちは。りょーち@管理人です。
こめんといただきましてありがとうございます。
seesaa blogのカスタマイズ用の言語(script?)を使えばうまくできるのかなーと思ったりしたのですが、実はよくわかっていないので、無理やりspanタグのccountというクラスをつけて、それを数えるという手法にしてしまいました。
>※せっかくのネタなので、もしかしたら、自分のブログでも記事にしちゃうかもしれません。
どーぞ、どーぞ。
いまのところりょーちの方法でもなんとなく動いている感じがしますが、もしかしたらテトラポッドさんの方法に変更しちゃうかもです。

ではでは。
Posted by りょーち at 2009年09月07日 08:29
ありがとうございます。
「カテゴリ」に記事の総数を表示するというのは私も考えたことがあるのですが、javascriptを使うという発想がでてきませんでした。
なんとか、seesaaのあの独特の記述方法で合計を出せないものかとばかり考えていたので、目からうろこでした。

これ、記事全体の総数だけでなく、サブカテゴリの記事の総数を、親カテゴリに表示するといったことも可能になると思います。
上手くまとまったら記事にしてみようかと思います。
Posted by テトラポッド at 2009年09月07日 19:57
りょーち@管理人です。
>記事全体の総数だけでなく、サブカテゴリの記事の総数を、
>親カテゴリに表示するといったことも可能になると思います
classタグをうまくつけて計算させればいけるかもしれませんね。
>上手くまとまったら記事にしてみようかと思います。
期待してまーす。
できたらおしえてくださーい。
ではでは。
Posted by りょーち at 2009年09月08日 02:18
記事にまとめましたので、御知らせします。
量が多いので、2つの記事に分割しました。

カテゴリに全記事数を表示
http://neon-tetra.seesaa.net/article/127825419.html
親カテゴリに記事数を表示
http://neon-tetra.seesaa.net/article/127825455.html

サブカテゴリの記事総数を表示する方は、複雑に見えるかもしれません。
前提となる「カテゴリのツリー化」が、[記事カテゴリ名][カテゴリ][記事][HTML]スタイルシートと、編集箇所がやたら多いので、採用される方が少ないと思います。
Posted by テトラポッド at 2009年09月11日 22:05
テトラポッドさん、こんにちは。
りょーち@管理人です。

記事を拝見いたしました。
編集箇所を減らすためにループカウンタなどを駆使できればいいんですけど、seesaaの仕様では難しいんですかねぇ・・・
でもいろいろ参考になりました。
今後も(こっそり)拝見させていただきます(^^;

ではでは。
Posted by りょーち at 2009年09月14日 09:44
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: