2

可動タイプのブログのエントリの概要を取得して、タイトルが画像の上に特定の方法でフォーマットされた画像を表示しようとしています (この目的で使用される場合、画像はタグ付けされます)。画像はありません。ただし、else ステートメントを MTEntryAsset で正常に動作させることができません。「画像」タイプの「ホームページ」とタグ付けされた EntryAssets がない場合、何もしません。

<mt:entryassets tag="homepage" type="image" limit="1"> 
     <div class="image_entrie_header"><img src="<mt:assetthumbnailurl>"></div>
     <h3 class="blog_entry_headingimg"><a href="<mtentrypermalink>"><mt:entryTitle></a></h3>
<mt:else>
     <h3 class="blog_entry_heading"><a href="<mtentrypermalink>"><mt:entryTitle></a></h3>
</mt:entryassets>
4

4 に答える 4

3

EntryAssets タグが をサポートしているとは思えません<mt:Else>が、ちょっとした Movable Type ロジックでこれを実現できます。

いくつかの単純なタグを使用すると、次のようなことができます。

<mt:If tag="EntryCategory">
  <p>Filed under <$mt:EntryCategory$></p>
<mt:Else>
  <p>Uncategorized</p>
</mt:If>

しかし、ブロック タグの EntryAssets は複数のテンプレート タグ修飾子を使用する複雑なタグであり、そのうちの 1 つが と呼ばれているtagため、これは機能しません。次のように Movable Type変数を使用して偽装できます。

<$mt:Var name="asset_found" value="0"$>
<mt:EntryAssets tag="homepage" type="image" limit="1">
  <$mt:Var name="asset_found" value="1"$>
  Your code here
</mt:EntryAssets>
<mt:Unless name="asset_found">
  Show this if none found
</mt:Unless>

変数を設定する最初の行はasset_found0Movable Type では厳密には必要ありませんが、同じテンプレートの複数の場所でこのブロックを使用する場合に備えて、変数をリセットすることをお勧めします。

于 2013-01-05T01:03:45.207 に答える
2

チャーリーの解決策は素晴らしいものです。別の方法を紹介しましょう。Extra Tags プラグインには、EntryHasAssets というタグがあります。チャーリーのソリューションに対するこのタグの利点は、テンプレートが少し無駄がなく、おそらく読みやすいことです。

<mt:EntryHasAssets>
    <mt:entryassets tag="homepage" type="image" limit="1"> 
        <div class="image_entrie_header"><img src="<mt:assetthumbnailurl>"></div>
       <h3 class="blog_entry_headingimg"><a href="<mtentrypermalink>"><mt:entryTitle></a></h3>
    </mt:entryassets>
<mt:Else>
    <h3 class="blog_entry_heading"><a href="<mtentrypermalink>"><mt:entryTitle></a></h3>
</mt:EntryHasAssets>

パフォーマンス テストは行っていません。Charlie のネイティブ ソリューションがこのプラグインのタグよりも速いか遅いかはわかりません。プラグインを追加するとオーバーヘッドが追加されますが、ExtraTags のような適切に作成された小さなプラグインの場合は最小限です。このプラグインで別のタグを使用していない限り、物事をきれいに保つために、おそらくネイティブソリューションを使用するだけです。

于 2013-01-05T14:10:04.020 に答える
0

mt:Else is used with mt:If and mt:Unless. It isn't defined as the condition when enclosing tags such as mt:Entries, mt:Comments, mt:Categories have no results.

The solution that Charlie suggested is how we code the absence of entry assets in templates that support the SuperAssets series of plugins.

于 2013-01-05T14:22:46.760 に答える
0

あなたのソリューションが機能しなかった理由は、そこで使用した mt:Else タグが「mt:entryassets」タグの否定として機能しないためです。

上記でチャーリーが概説したソリューションは非常にうまく機能します。

Dan のプラグインは、彼が提供したテンプレート サンプルとうまく連携します。知りたいのは、Dan のプラグインの方がはるかにスマートで、より進化したジョブを実行できる可能性があるということです。

于 2013-02-14T20:50:57.790 に答える