Shi0

カテゴリに属するエントリーを表示させる

0

各カテゴリの属している最新エントリーを1件づつ表示してなおかつ __first__で最新のエントリーだけにNEWを付けたいと思います。下記のように試行錯誤しておりますがうまく行きません。アドバイス頂けないでしょうか。どうぞよろしくお願いいたします。

 <mt:Categories>
     <mt:If tag="CategoryLabel" like="^(カテゴリ1|カテゴリ2|カテゴリ3)">
  		<mt:If name="__first__">
	        <mt:entries lastn="1" >		
				<li>NEW! <mt:entrytitle></li>	 
	        </mt:Entries>
        
        <mt:else>
        
	        <mt:entries lastn="1" >		
				<mt:entrytitle>		 
	        </mt:Entries>
  		</mt:if>
   </mt:if>
</mt:Categories>

返信(1)

| 返信する
  • > 各カテゴリの属している最新エントリーを1件づつ表示して
    > 最新のエントリーだけにNEWを付けたい
    「各カテゴリごとに1件記事を表示し、表示された記事の中から最新の1件にのみNEWを付ける」という事でしょうか。
    「__first__」は「ループの中で一番初め」という意味で、最新の記事が選べるものではありません。
    そのため、カテゴリ(と最新記事)を取得しながら最新を探しておいて、取得した記事を出力する際にNEWを付けるというやり方が妥当かな、と思います。

    ■ Hahs版
    <mt:SetVar name="new" value="0" />
    <mt:Categories>
            <mt:If tag="CategoryLabel" like="^(カテゴリ1|カテゴリ2|カテゴリ3)">
                    <mt:Entries lastn="1">
                            <mt:Date format="%Y%m%d%H%M%S" setvar="entry_date" />
                            <mt:SetHashVar name="entry">
                                    <mt:EntryTitle setvar="title" />
                                    <mt:SetVar name="date" value="$entry_date" />
                            </mt:SetHashVar>
                            <mt:SetVar name="push(entries)" value="$entry" />
                            <mt:Ignore>↓最新かどうか確認して新しければ更新</mt:Ignore>
                            <mt:If name="new" lt="$entry_date"><mt:SetVar name="new" value="$entry_date" /></mt:If>
                    </mt:Entries>
            </mt:If>
    </mt:Categories>
    <mt:loop var="entries">
            <mt:if name="__first__"><ul></mt:if>
            <li><mt:if name="new" eq="$date">NEW! </mt:if><mt:Var name="title" /></li>
            <mt:if name="__last__"></ul></mt:if>
    </mt:loop>

    ※ 検証環境を用意していないので、lt/gtの間違いとかしている可能性があります。
    ※ 私がHahsの使い方をマスターできていないため、念のため非Hahs版も。

    ■ 非Hahs版
    <mt:SetVar name="new" value="0" />
    <mt:Categories>
            <mt:If tag="CategoryLabel" like="^(カテゴリ1|カテゴリ2|カテゴリ3)">
                    <mt:Entries lastn="1">
                            <mt:Date format="%Y%m%d%H%M%S" setvar="entry_date" />
                            <mt:If name="new" lt="$entry_date"><mt:SetVar name="new" value="$entry_date" /></mt:If>
                    </mt:Entries>
            </mt:If>
    </mt:Categories>
    <mt:Categories>
            <mt:if name="__first__"><ul></mt:if>
            <mt:If tag="CategoryLabel" like="^(カテゴリ1|カテゴリ2|カテゴリ3)">
                    <mt:Entries lastn="1">
                            <mt:Date format="%Y%m%d%H%M%S" setvar="entry_date" />
                            <li><mt:if name="new" eq="$entry_date">NEW! </mt:if><mt:EntryTitle /></li>
                    </mt:Entries>
            </mt:If>
            <mt:if name="__last__"></ul></mt:if>
    </mt:Categories>

    基本的に両方同じことをしています。
    最新記事の日時データを「変数new」に格納し、描画の際に振り分けています。
    うまく動いて、お役に立てれば幸いです。

返信する


OpenID対応しています OpenIDについて