| 2008.05.13 23:01 |
MT4になって、いろいろなことがプラグインなしでできるようになりましたが、ユーザーが何個の記事を投稿しているかを一発で取得する<$mt:AutherCount$>みたいなタグはないみたいなので、変数と条件タグを駆使して無理矢理取得してみました。
<mt:Authors> <div id="auther-<$MTAuthorID$>"> <!-- まず、AuthorsコンテナタグでAuthorIDを取得 --> <mt:SetVarBlock name="cur_ID"><$MTAuthorID$></mt:SetVarBlock> <!-- ArchiveCount取得用にユーザーアーカイブの一覧を書き出し --> <mt:ArchiveList archive_type="Author"> <!-- ArchiveListコンテナタグのAuthorIDを取得 --> <mt:SetVarBlock name="temp_ID"><$MTAuthorID$></mt:SetVarBlock> <!-- AuthorsコンテナタグとArchiveListコンテナタグで取得した AuthorIDを比較して、一致した場合のみ処理を行う --> <mt:If name="cur_ID" eq="$temp_ID"> <!-- 「ユーザーのエントリー数」に、ArchiveCountを代入する --> <mt:SetVarBlock name="auther_archive_count"><$mt:ArchiveCount$></mt:SetVarBlock> <!-- ========== ここで処理 「ユーザーのエントリー数」は <$mt:GetVar name="auther_archive_count"$>で取得できます 例:<a href="<$MTBlogURL$><$mt:AuthorName$>/index.html"><$mt:AuthorDisplayName$></a>(<$mt:GetVar name="auther_archive_count"$>件の記事) ========== --> </mt:If> </mt:ArchiveList> </div> </mt:Authors>
上の例ではユーザーアーカイブへのリンクを固定で書き出していますが、この仕組みを使えば<$mt:AutherArchiveURL$>みたいのもできそうです。
なんでこんな面倒くさいことをしているかというと、複数の投稿者を「ユーザー」で管理して、サイト上で投稿したユーザーの一覧を表示するときに、そのユーザーの投稿数もわかったらいいな、なんて思ってしまったからです。
<mt:Authers>も<mt:ArchiveList>も、できることが中途半端なんですよね・・
<mt:Authors> <div id="auther-<$MTAuthorID$>"> <!-- まず、AuthorsコンテナタグでAuthorIDを取得 --> <mt:SetVarBlock name="cur_ID"><$MTAuthorID$></mt:SetVarBlock> <!-- ArchiveCount取得用にユーザーアーカイブの一覧を書き出し --> <mt:ArchiveList archive_type="Author"> <!-- ArchiveListコンテナタグのAuthorIDを取得 --> <mt:SetVarBlock name="temp_ID"><$MTAuthorID$></mt:SetVarBlock> <!-- AuthorsコンテナタグとArchiveListコンテナタグで取得した AuthorIDを比較して、一致した場合のみ処理を行う --> <mt:If name="cur_ID" eq="$temp_ID"> <!-- ========== ここで処理 例:<a href="<$mt:ArchiveLink$>"><$mt:AuthorDisplayName$></a>(<$mt:ArchiveCount$>件の記事) ========== --> </mt:If> </mt:ArchiveList> </div> </mt:Authors>
<mt:If>の中で改めて代入する必要はないよな。これでいけるはず。明日検証してみる。
やっぱ、これでいいみたいだ。

コメント (2)
2008.05.16 10:15
test
ziyotoy
2008.05.16 10:24
test
test