MTの本文フィールドからimg要素のURLを取得する方法
MTの本文フィールドからimg要素のURL(src属性値)を取得する方法を紹介します。
1.はじめに
Movable Typeの本文フィールドに埋め込んだ、最初に出現するimg要素からURLを取得する必要が生じました。
このURLはアイテムとしては登録していないので、Asset系のタグを使って取得することはできません。
ということで、img要素のURLを取得する方法を紹介します。
2.最初に出現するimg要素のURLを取得する
本文フィールドに埋め込まれた最初に出現するimg要素のURLを取得するには、次のような方法があります。
<mt:Entries>
<$mt:EntryBody regex_replace='/[\s\S]*?<img src="([^"]+)"[\s\S]*/',"$1" setvar="url"$>
<$mt:GetVar name="url"$>
</mt:Entries>
3.解説
MTEntryBodyタグにregex_replaceモディファイアを用いて、本文の中から最初に出現するsrc属性値を取得しています。
regex_replaceモディファイアでダブルクォーテーションを使うとパターンマッチのダブルクォーテーションをエスケープしなければならなくなるので、ここではシングルクォーテーションを使っています。
src属性値の部分は「[^"](=ダブルクォーテーション以外の1文字以上の文字にマッチ)」で取得しています。またimg要素以外の部分は「[\s\S]*」で改行を含むすべての文字を指定しています。
最初のimg要素にマッチさせるために最短マッチの「?」を使っています。
最短マッチについては「正規表現の最短マッチと最長マッチについて」をご覧ください。
最後にsetvarタグを使って、抽出したURLを変数urlに保存しています。
4.注意事項
このパターンマッチはsrc属性がimg要素の先頭に出現するパターンのみ有効です。
Posted by yujiro このページの先頭に戻る
- Movable Type検索結果画面のMTIncludeタグでファイルを読み込む方法
- Movable Typeの月別コンテンツアーカイブリスト用テンプレート
- コンテンツデータでMTEntriesWithSubCategoriesの代替テンプレートタグ
- MTContentFieldタグの使い方
- Movable Typeでブログ記事一覧をカスタムフィールドでソートする方法
- MTEntriesタグで指定した数の記事を除外して表示する方法
- Movable Typeのテンプレートタグの中でテンプレートタグを使う方法
- Movable Typeのテンプレートタグをテンプレートで生成する方法
- Movable TypeのMTEntriesタグで特定の複数ブログ記事を出力する方法
- Movable TypeでCSVデータからtable要素を作る方法
- MTIncludeタグのnameモディファイア
- Movable Type(MT)の特殊変数の入れ子
- ブロックタグにelseタグを組み込んで判定する
- Movable Type 5 におけるウェブサイトとブログの複数指定方法
- ウェブサイトとブログでグローバルナビゲーションを共有する
トラックバックURL
コメントする
greeting