MT3.3から正式に取り入れられたタグ機能は、一部のMTTagがTagwireプラグイン及びTagSupplementalsと重複する部分があり、その為、今までと同様にこれらふたつを使おうとすると、Tagwireプラグインを用いて出力させるキーワードは稼動するけど、タグ機能は働かないという事態に陥ります。それを解消してみようと思います。
タグ機能を拡張してくれる
■TagSupplementals Plugin.ja JP - Ogawa Code [Ogawa Code]
はインストール済みで話は進んで行きます。
Tagwireプラグインを改変する
tagwire.pl を開きます。49~59行目は以下のようになってます。
MT::Template::Context->add_container_tag(Tags => \&tags);
MT::Template::Context->add_container_tag(EntryTags => \&entry_tags);
MT::Template::Context->add_container_tag(RelatedTags => \&related_tags);
MT::Template::Context->add_tag(Tag => \&tag);
MT::Template::Context->add_tag(TagCount => \&tag_count);
MT::Template::Context->add_tag(TagDate => \&tag_date);
MT::Template::Context->add_tag(TagsTotal => \&tags_total);
MT::Template::Context->add_tag(TagsTotalSum => \&tags_total_sum);
MT::Template::Context->add_container_tag(EntriesWithTags => \&entries);
MT::Template::Context->add_container_tag(MostRelatedEntries => \&most_related_entries);
MT::Template::Context->add_global_filter(encode_urlplus => \&encode_urlplus);
以下のように書き換えます。
MT::Template::Context->add_container_tag(Tagwires => \&tags);
MT::Template::Context->add_container_tag(EntryTagwires => \&entry_tags);
MT::Template::Context->add_container_tag(RelatedTagwires => \&related_tags);
MT::Template::Context->add_tag(Tagwire => \&tag);
MT::Template::Context->add_tag(TagwireCount => \&tag_count);
MT::Template::Context->add_tag(TagwireDate => \&tag_date);
MT::Template::Context->add_tag(TagwiresTotal => \&tags_total);
MT::Template::Context->add_tag(TagwiresTotalSum => \&tags_total_sum);
MT::Template::Context->add_container_tag(EntriesWithTagwires => \&entries);
MT::Template::Context->add_container_tag(MostRelatedTagwireEntries => \&most_related_entries);
MT::Template::Context->add_global_filter(encode_urlplus => \&encode_urlplus);
テンプレート修正
今まで、MTTagsやMTTagCountを用いて出力させていたコンテナタグ・変数タグを修正します。
- MTTags → MTTagwires
- MTEntryTags → MTEntryTagwires
- MTRelatedTags → MTRelatedTagwires
- MTTag → MTTagwire
- MTTagCount → MTTagwireCount
- MTTagDate → MTTagwireDate
- MTTagsTotal → MTTagwiresTotal
- MTTagsTotalSum → MTTagwiresTotalSum
- MTEntriesWithTags → MTEntriesWithTagwires
- MTMostRelatedEntries → MTMostRelatedTagwireEntries
タグとキーワードの表示試験
上記をしっかり行ったら、いよいよ表示試験に移ります。
このサイトの場合、TagCloudのページはTagwire+mt-xsearchで作成されてるので、ここにタグ機能により抽出された「タグ」が出てくれれば、ふたつの機能は共存出来ていると考えられます。
このページに下記コードを書いてみる
<ul id="tag-cloud">
<MTTags>
<li class="tag">
<a class="tag level<$MTTagRank$>" href="<$MTTagSearchLink$>" title="<$MTTagName$>:<$MTTagLastUpdated$>(<$MTTagCount$>)" rel="tag"><$MTTagName$></a>
</li>
</MTTags>
</ul>
CSSファイルに以下を追記します。
/* Tag-Cloud */
ul li.tag {
margin-right: 5px;
display: inline;
list-style: none;
}
li.tag a.level1 {
font-size: 175%;
color: #FF9900;
}
li.tag a.level2 {
font-size: 160%;
color: #FF9966;
}
li.tag a.level3 {
font-size: 145%;
color: #FFCC66;
}
li.tag a.level4 {
font-size: 135%;
color: #6699FF;
}
li.tag a.level5 {
font-size: 120%;
color: #BBBBBB;
}
li.tag a.level6 {
font-size: 110%;
color: #999999;
}
/*Tag-Cloud end */
以上で再構築を施すと表示されます。
[参考記事]
■キーワードとタグ(1) (オラオラ) [オラオラ]