Ramdom Entry Pickup
- 2006年 「Amazonアフィリエイト」成果 (2006年12月30日)
- 激速!「Ajax」でのブログ内全文検索 (2006年09月22日)
- 更新Ping・送信先一覧 (随時更新) (2006年10月26日)
- 画像のアップロード先のデフォルトを変更する(MT3.3) (2006年09月10日)
- ガチャピン:カート (2005年04月01日)
« 波ダッシュ、何とかならないのかな?(その1) | メイン | 嫁のブログ・・・・・Σ(゚ロ゚*)!!(BlogPet) »
もうお気づきの方もいるかと思いますが、
ページ上のナビゲーションバーに「TAG」というのがあります。
これを開くと、ずら~~っと単語が並んで、
それぞれの文字の大きさもいろいろなものになっています。
これがいわゆる、「Tag Cloud」です。
これは何かというと、このブログでの、いわゆるキーワードを羅列してあり、
出現頻度の回数が多いほど字が大きくなります。


また、各単語をクリックすると、
そのTAGが使われているエントリーの一覧が表示されます。
↓こんな感じ

では、これの作成方法をば。。。
まず、「Tagwire」をインストールします。
上記から、「Tagwire.zip」をダウンロードし、解凍します。
解凍した「tagwire.pl」をMTのPluginsディレクトリにアップロードします。
正しくインストールできていれば、MovableTypeのメインメニューにTagwire Pluginが新規にリストアップされます。
それで、肝心のTAGですが、
これはエントリーの「キーワード」へ入力することになります。
各キーワードは、さまざまな表記の仕方があるようですが、
私の場合は、デリミタ(区切り文字)として、「 , 」(カンマ)を使用しています。
それには理由がありますが、それは後述します。
では、それぞれのエントリーでキーワード欄にTAGを入れていきましょう。
↓こんな感じです。
それでは、「TAG Cloud」ページを新規テンプレートとして作成します。
私の場合、以下のように作成しました。
<p>
Cutoff Parameter:
<a onclick="decCoff(5)" class="coffButton">-5</a>
<a onclick="decCoff(1)" class="coffButton">-1</a>
<a onclick="incCoff(1)" class="coffButton">+1</a>
<a onclick="incCoff(5)" class="coffButton">+5</a>
<span id="coff">0</span>
</p>
<ul id="tags">
<MTTags>
<li title="<$MTTag$>:<$MTTagCount$>:<$MTTagDate format="%Y-%m-%d"$>"><a target="_blank" href="<$MTCGIPath$>mt-xsearch.cgi?blog_id=<$MTBlogID$>&delimiter=,&search_key=Tagwire&search=<$MTTag encode_url="1"$>"><$MTTag$></a></li>
</MTTags>
</ul>
<script type="text/javascript">
function calcFontSize(count) {
return count / 3 + 12;
}
var tags = new Array();
var now = (new Date()).getTime();
var tagsNode = document.getElementById('tags');
var childNodes = tagsNode.childNodes;
for (var i = 0; i < childNodes.length; i++) {
var e = childNodes.item(i);
if (e.nodeName.match(/li/i)) {
var s = e.title.split(':');
e.style.fontSize = calcFontSize(s[1]) + 'px';
var d = s[2].split('-');
var diff = (now - (new Date(d[0], d[1] - 1, d[2])).getTime()) / 86400000;
if (diff < 14) e.className = 'hot';
else if (diff > 365) e.className = 'oldest';
else if (diff > 60) e.className = 'old';
tags.push([ e, s[1] ]);
}
}
tagsNode.style.display = 'block';
var coff = 0;
var coffNode = document.getElementById('coff');
function decCoff(c) {
if (coff == 0) return;
coff -= c;
if (coff < 0) coff = 0;
coffNode.innerHTML = coff;
refreshCoff();
}
function incCoff(c) {
if (coff == 20) return;
coff += c;
if (coff > 20) coff = 20;
coffNode.innerHTML = coff;
refreshCoff();
}
function refreshCoff() {
for (var i = 0; i < tags.length; i++) {
var tag = tags[i];
tag[0].style.visibility = (tag[1] <= coff) ? "hidden" : "visible";
}
}
</script>
青文字のように、デリミタは「,」と指定しましょう。
このテンプレートを再構築すれば、「Tag Cloud」ページのできあがりです。
続いて、このTag Cloudページからエントリーリストへジャンプできるように設定します。
それには、「MT-XSearch」をインストールします。
上記ページから、「mt-plus」をダウンロードします。
解凍すると、以下のようなファイルが出てきますので、アップロードします。
「mt-xsearch.cgi」には実行権を与えてください。
次に、日本語対応のために、
「mt-xsearch.cgi」と「mt-xsearch.pl」に修正を加えます。
mt-xsearch.cgi
mt-xsearch.pl
赤文字部分を消し、青文字を追加します。
つづいて、新規で以下のようにテンプレートモジュールを作成します。
テンプレート名:「XSearch Tagwire」
<br />
<MTSearchResults>
<MTSearchHeader>
Results found: <strong><$MTSearchResultCount$></strong>
<br />
<br />
<ul>
</MTSearchHeader>
<li><a href="<$MTEntryLink$>"><$MTEntryTitle$></a>.......[ <a href="<MTCGIPath>mt.cgi?__mode=view&_type=entry&id=<$MTEntryID$>&blog_id=1">Edit</a> ]</li>
<MTSearchFooter>
</ul>
<p>Searched on: <span style="font-size: 14px;"><strong><$MTSearchString decode_url="1"$></strong></span></p>
</MTSearchFooter>
</MTSearchResults>
<MTNoSearch><p>No search performed.</p></MTNoSearch>
<MTNoSearchResults><p>Nothing found.</p></MTNoSearchResults>
青文字のように、そのエントリーの編集画面へのリンクも付け加えています。
また、赤文字のように、ここでもデリミタを「,」と指定します。
これでいちを完了です。
私の場合、こちらのページのようになりました。
しかし、、、キーワードが多くなってくると、表示が遅い。。。
ところで、なんでデリミタを「,」にしたのかというと、
metaタグのKeywordsで使用したいからです。
以下のようにすれば、
TAGをmetaタグのキーワードとしてページ毎に追加できます。
といった感じです。
みなさまの参考になれば幸いです(^^;)
このエントリーを書くのに、何日かかったか。。。(^^;)
Link HTML:
トラックバックURL:
» タグづけ from
Imaginary Affair
» MT 3.3x Tag Cloudを試してみる from
A T M O S P H E R E