meico

記事ページのローカルナビゲーション(親と子カテゴリごとの記事一覧表示)

1

お世話になります。

MT6.3.6を使用しています。
記事ページのローカルナビゲーションを以下のように実現したいのですがうまくいかずに悩んでいます。

■親カテゴリ1(←リンクなし カレント表示)
 └子カテゴリ1-1(←テキスト表示 アーカイブへのリンクなし)
  └★記事A1(←カレント表示)
  └記事A2(←記事へリンク)
 └子カテゴリ1-2
  └記事B1
  └記事B2
 └子カテゴリ1-3
  └記事C1
  └記事C2

■親カテゴリ2(←属する一番最初の記事にリンク)

■親カテゴリ3(←属する一番最初の記事にリンク)

--
該当している親カテゴリのみ
子カテゴリと記事をそれぞれ表示し、

それ以外の親カテゴリは
カテゴリ名のみ表示、そこをクリックすると
親カテゴリに属する記事の1枚目にリンクするといったものです。

親カテゴリ2をクリックすると属する記事の1枚目に遷移し、
親カテゴリ1はリンクボタンだけになり、
親カテゴリ2の子カテゴリと記事が展開します。

試行錯誤しても結局わからず......
恐れ入りますが、教えていただけると大変助かります。
どうぞよろしくお願いいたします。

返信(6)

| 返信する
  • jQueryを使って以下みたいな感じでいかがでしょうか?

    <mt:SetVarBlock name="currentTitle"><$mt:ArchiveTitle$></mt:SetVarBlock>
    <div id="categoryArchives">
    	<mt:IfArchiveTypeEnabled archive_type="Category">
    		<mt:If tag="BlogCategoryCount">
    			<mt:TopLevelCategories>
    				<mt:SubCatIsFirst>
    				<ul>
    				</mt:SubCatIsFirst>
    				<li>
    					<a href="<$mt:ArchiveLink$>"><$mt:CategoryLabel$></a>
    					<mt:If tag="CategoryCount">
    						<ul>
    						<mt:Entries lastn="0">
    							<mt:SetVarBlock name="entryTitle"><$mt:EntryTitle$></mt:SetVarBlock>
    							<mt:If name="currentTitle" eq="$entryTitle">
    							<li class="current"><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li>
    							<mt:Else>
    							<li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li>
    							</mt:If>
    						</mt:Entries>
    						</ul>
    					</mt:If>
    				<$mt:SubCatsRecurse$>
    				</li>
    				<mt:SubCatIsLast>
    				</ul>
    				</mt:SubCatIsLast>
    			</mt:TopLevelCategories>
    		</mt:If>
    	</mt:IfArchiveTypeEnabled>
    </div>
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script>
    $(function(){
    	$('div#categoryArchives li li a').not('div#categoryArchives li li li a').each(function(){
    		$(this).contents().unwrap();
    	});
    	$('div#categoryArchives > ul > li > a').each(function(){
    		var entries = $(this).next().html();
    		if (entries.indexOf('current') !== -1) {
    			$(this).contents().wrap('<span class="current"></span>');
    			$('span', this).unwrap();
    		} else {
    			$(this).prop('href',$(this).next().find('a:first').prop('href'));
    			$(this).next().remove();
    		}
    	});
    });
    </script>
  • 解決済みかもしれませんが、MTタグのみでサンプルを作成いたしました。

    https://cms-note.com/movabletype/mtc_category_entry_list.html

  • gikonekoさま、CMS NOTEさま お忙しい中ご回答いただきましてありがとうございます。
    お礼が遅くなってしまい、申し訳ございません。体調を崩しておりました……

    ソースを書いていただけるのは本当に助かります。ありがとうございます。
    ただ、教えていただいたコードをコピペしてみたのですが、なぜかうまく表示されませんでした。。泣
    私が記事を登録する際のカテゴリ登録方法が間違っているのか(親カテと子カテのチェックをする順番がちがっていたか…)など試してみましたが、私の知識不足でいまだ原因がよくわかっておりません。

    記事をもう少し追加してテストしてみます。
    まずはお礼と近況をご連絡させていただきました。
    どうぞよろしくお願いいたします。

  • お世話になっております。
    CMS NOTEさまに教えていただいたソースコードを使って思うような表示ができました!!
    ありがとうございます!!

    ただ、再度すみません、、、ソースを見ても解決できなかったので相談させてください。
    親カテゴリに複数の子カテゴリがあるのに、子カテゴリが1つしか表示されませんでした。
    以下だと子カテゴリ1-1に属すA1が表示されている場合、子カテゴリ1-2の記事B1とB2はリスト表示されませんでした。

    ■親カテゴリ1(←リンクなし カレント表示)
     └子カテゴリ1-1
      └★記事A1(←カレント表示)
      └記事A2
     └子カテゴリ1-2……←ここから以下が表示されませんでした
      └記事B1
      └記事B2

    再三お手数おかけしてしまい、大変恐縮です。、。
    ご確認いただけたらとても助かります。すみません、どうぞよろしくお願いいたします。

  • 申し訳ございません。修正しました。
    ご確認をお願いいたします。
    https://cms-note.com/movabletype/mtc_category_entry_list.html

  • CMS NOTEさま
    早速ありがとうございます!!
    迅速に対応していただいて大変助かりました。
    お手数おかけしました。本当にありがとうございます!

返信する


カテゴリグループ

フォーラムカテゴリー

21 76

最新のトピック: 公開終了日の取り消し (2013年10月18日 gsk)

274 804

最新のトピック: コンテンツデータ一覧の並び順 (2018年10月30日 しょうちゃん)

170 494

最新のトピック: MT7の要望です。 (2018年8月11日 regraviti)

384 1066

最新のトピック: MT7 DataApiV4でContentData一覧のsearch (2018年10月 1日 frida)

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