mt:EntryAssetsで記事のアセットの中で一番最初にアップロードされた画像を選択する

  • 投稿者:
  • カテゴリ:
このエントリーをはてなブックマークに追加

20220115030555_blogpix.png

https://gourmetvox.comのMovableTypeを最新版のMovable Type Pro version 6.8.5にアップグレードしたのですが、そしたら新着記事にリストアップしている最新の10件に表示されるサムネイルの画像が、以前とは違うルールで選択される様になってました。

写真はブログ記事の作成時に記事ごとにアップロードしていますが、この時に一番最初にアップロードした写真がサムネイルやOGPのog:imageになる様にしていました。

サムネイルのところは下記の様なテンプレートになります。

<mt:Entries>
  <mt:EntryAssets lastn="1" sort_order="ascend">
    <div class="images table">
      <img src="<$mt:AssetThumbnailURL width="60" square="1"$>" width="60">
    </div>
  </mt:EntryAssets>
</mt:Entries>

MT 6.8.5 にアップグレードする前は MT 6.3.2 でしたが、MT 6.3.2 では上記テンプレートでサムネイルは記事のアセットとして登録された中で一番最初にアップロードされたものが使われていました。

しかし、MT 6.8.5 にアップロードしたら、記事に登録されたアセットの中で一番最後にアップロードされた写真がサムネイルで使われる様になっていました。

とりあえず「sort_order="ascend"」を「sort_order="descend"」に修正しましたが、状況は変わらずでした。

<mt:Entries>
  <mt:EntryAssets lastn="1" sort_order="descend">
    <div class="images table">
      <img src="<$mt:AssetThumbnailURL width="60" square="1"$>" width="60">
    </div>
  </mt:EntryAssets>
</mt:Entries>

ここでlastnモディファイアとlimitモディファイアについて仕様の確認(今更!)。
lastn モディファイアと limit モディファイアの違い

lastnモディファイアでは上記のページに書いてある様に新しい方から指定された件数分を抽出するので、「lastn="1"」としている場合は一番最後に登録された画像が抽出されることになるり、「sort_order」は書いてあっても意味がないということになりますね。

そして、「lastn="1"」を「limit="1"」、「sort_order="descend"」を「sort_order="ascend"」とした場合、これで今まで通り、記事に登録された写真のうち、一番最初にアップロードされた写真が1件抽出される様になりました。

<mt:Entries>
  <mt:EntryAssets limit="1" sort_order="ascend">
    <div class="images table">
      <img src="<$mt:AssetThumbnailURL width="60" square="1"$>" width="60">
    </div>
  </mt:EntryAssets>
</mt:Entries>

lastn モディファイアと limit モディファイアの違いには書いてありませんが、「sort_order="ascend"」で昇順に並べ替えられてから1件が抽出されると解釈すると、「一番古い」=「一番最初」に登録された写真が抽出されることになります。

20220115044907_blogpix.png

これで元通りの表示になったのですが、そうすると MT 6.3.2 の時は「mt:EntryAssets」で指定した「lastn="1"」は記事内に登録されたアセットのうち、一番古いものが抽出されていたということなのか、「sort_order="ascend"」が最初に処理されていたのか...。

何れにしても今の<mt:EntryAssets limit="1" sort_order="ascend">Do Something<mt:EntryAssets>の書き方が一番しっくりくるし、正しい書き方ですね。

このエントリーをはてなブックマークに追加