cocoa

【MT4.24】ブログ記事がない月別アーカイブページに代替テキストを表示したい

0

いつもお世話になっています。
MT4.24で月別アーカイブページについて質問です。
ブログ記事がない月のアーカイブページは生成されないかと思いますが、メインページや各ブログ記事から今月のアーカイブページへ下記の記述でリンクさせているため、ページが存在せずNot foundになってしまいます。

<a href="<$mt:BlogURL$><$mt:Date format="%Y/%m">/">今月のアーカイブ</a>

最新のブログ記事の月別アーカイブページへリンクを張る方法、もしくはブログ記事がない場合も月別アーカイブページを生成させ、代替テキストなどを自動的に出力する方法はありませんでしょうか!?

なるべく早く対応しないといけないため、何かわかれば教えて頂けると助かります!

返信(6)

| 返信する
  • 補足ですがメインページ(TOPページ)からは下記のような記述となっております。mt:MultiBlogを入れています。

    <a href="<mt:MultiBlog include_blogs="65"><$mt:BlogURL$></mt:MultiBlog><$mt:Date format="%Y/%m">/">MORE</a>

  • >cocoaさん
    「最新のブログ記事の月別アーカイブページへリンクを張る方法」であれば、以下のようにMTEntriesタグで最新の1件を取得し、その日付を取得すればよいと思います(改行・スペースは除去してください)。

    <a href="
    <mt:MultiBlog include_blogs="65">
      <$mt:BlogURL$>
      <mt:Entries lastn="1">
        <$mt:EntryDate format="%Y/%m">
      </mt:Entries>
    </mt:MultiBlog>
    /">MORE</a>
    • ご返信ありがとうございます!
      ご教授いただいた通りにやってみたところ実装できました!
      ハマっていたので大変助かりました。。ありがとうございます!

    • ↑すみません!できていると思ったのですが、
      各月別アーカイブページからもリンクしており、
      その場合だとその月のアーカイブページへのリンクとなってしまいます。。
      回避策はありますでしょうか。。

  • ひょっとして,サイドバー等(ウィジェットテンプレート)での処理だったりしませんか?
    通常のメインインデックスであればyujiroさんのおっしゃるとおりなのですが,各月別アーカイブだと確かにその月のアーカイブページへのリンクとなってしまいます.

    それであれば,MTArchiveListでいけるような気がします.
    ----------

    <mt:MultiBlog include_blogs="65">
      <mt:ArchiveList archive_type="Individual" lastn="1">
        <$mt:ArchiveDate format="%Y/%m" setvar="month"$>
        <$mt:ArchiveDate format="%Y年%m月のアーカイブページ" setvar="page"$>
      </mt:ArchiveList>
    </mt:MultiBlog>
    <a href="<$mt:BlogURL$><$mt:GetVar name="month"$>/"><$mt:GetVar name="page"$></a>

    ----------
    ただ,最新月へのリンクがエントリーが増えるたびに変化することになるので,エントリーが1つ投稿されるごとに各アーカイブを全部再構築しないとならなくなり,相当な負荷がかかります.
    なので,そこの部分だけモジュールにして,キャッシュを使った方が良さげな感じですが(^^;

  • >yujiroさん、HashiMさん
    再構築がうまくいっていなかったようで
    月別アーカイブページでも最新のブログ記事の最新月ページへ
    きちんとリンクされておりました。
    お騒がせして失礼致しました。。ありがとうございました!

返信する