kazu

ブログ記事が0件の場合、代替テキストを自動で表示したい。

1

採用情報などをMTで作成したいのですが、
求人が0件(エントリーが無い)の場合、
「ただいま、求人は募集していません」
と表示したいです。

を使ってエントリー数を取得し、
if文で分岐したいのですがうまくいきません。
以下ではテンプレートでエラーになりました。
----------------------------------------------------------------






  • ただいま募集はしていません。


  • ">






----------------------------------------------------------------
これ以外の方法でもいいので解決策はありませんでしょうか?
よろしくお願いします。

返信(9)

| 返信する
  • すいません。エンコードし忘れました。


    <$MTEntriesCount"$>

    を使ってエントリー数を取得し、
    if文で分岐したいのですがうまくいきません。
    以下ではテンプレートでエラーになりました。
    ----------------------------------------------------------------

    <mt:Entries>
    <mt:EntriesHeader>
    <ul>
    </mt:EntriesHeader>
    <MTSetVarBlock name="ct">
    <$MTEntriesCount"$>
    </MTSetVarBlock>
    <mt:If name="ct" eq="0">
      <li>ただいま募集はしていません。</li>
    <mt:else>
      <li><a href="<$mt:EntryLink$>"><$mt:EntryTitle$></a></li>
    </mt:if>  
    <mt:EntriesFooter>
    </ul>
    </mt:EntriesFooter>
    </mt:Entries>

    よろしくお願いします。

  • はじめまして。

    まず、エラーになっているのは、MTEntriesCount の後ろに
    「"」が入っているからだと思います。
    また、表示がされないのは、エントリー数が0件の場合は、
    ~ の中を通らないからだと思います。

    動作確認はしてないのですが、こんな感じでどうでしょう

    <ul>
    <mt:Entries>
      <li><a href="<$mt:EntryLink$>"><$mt:EntryTitle$></a></li>
    </mt:Entries>
    <mt:If tag="EntriesCount" eq="0">
      <li>ただいま募集はしていません。</li>
    </mt:if>  
    </ul>
  • 一部タグが消えてました。
    -----
    ~ の中を通らないからだと思います。
    -----
    <mt:Entries>~</mt:Entries> の中を通らないからだと思います。
    -----

  • たいよう様

    できました!!
    ありがとうございます。
    0件ならば何も表示しないので最初に

    <mt:Entries>~</mt:Entries>
    にしてしまうことは思いもしませんでした(汗)


    <mt:If tag="EntriesCount" eq="0">
    一行で表示できるんですね・・・。
    いままで tag= はブログ記事の「タグ」のことと勘違いしていました。MTタグでもいいんですね。
    素人まるだしですいません。
    ありがとうございました。

  • kazuさん
    無事動いてよかったです。

    > いままで tag= はブログ記事の「タグ」のことと勘違いしていました。MTタグでもいいんですね。

    tag= は、MTタグによって記事のタグを指す場合とMTタグを指す場合があるようです。
    mt:If では、MTタグを指すようです。ややこしいですね~

  • たいよう様
    ご指導ありがとうございます。

    教えていただいた方法を少し応用してカテゴリーが0件の場合で、
    試してみたのですが、うまくいきません。

    <ul>
    <mt:Entries category="特集記事">
      <li><a href="<$mt:EntryLink$>"><$mt:EntryTitle$></a></li>
    </mt:Entries>
    <mt:If tag="CategoryCount" eq="0">
      <li>ただいま特集記事はありません。</li>
    </mt:if>  
    </ul>

    EntriesCountの代わりにCategoryCountを使ってみたのですが・・・
    なにも表示されません。
    なぜでしょうか?

  • kazuさん

    このソースは、インデックステンプレートで使われていますか?
    mt:CategoryCount は ブログ記事リスト、もしくは、mt:Categories や
    mt:SubCategories といった、カテゴリーの情報を取得するブロックタグの中
    でないと機能しません。

    インデックステンプレートで、特定のカテゴリーの記事数を取得しようとすると、
    下記のように、自前でカウントする方法になると思います。

    <ul>
    <mt:SetVar name="COUNT" value="0">
    <mt:Entries category="特集記事">
    <mt:SetVar name="COUNT" op="++">
    <li><a href="<$mt:EntryLink$>"><$mt:EntryTitle$></a></li>
    </mt:Entries>
    <mt:If name="COUNT" eq="0">
    <li>ただいま特集記事はありません。</li>
    </mt:if>
    </ul>

    • この方法でdaysモディファイアで実行しても何も表示されません
      daysモディファイアで対象記事0件の出し方が何か方法あれば教えて頂けますでしょうか…

  • たいよう様
    たびたびご指導ありがとうございます。
    インデックステンプレートで使っていました。

    <mt:Entries>
    は記事を出力するタグとしか認識がなく、
    変数をつかって数を代入するだけに使えるとは思いもしませんでした。
    なにか幅が広がったような気がします。
    例えば
    このMTタグはこのテンプレート、このブロックタグの中でのみ使用可能みたいな一覧表があれば、いいなーと思いました。
    本当にありがとうございました。

返信する


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