regex_replaceモディファイアで特定のタグで囲まれたテキストを消す
トップページで、いわゆるアイキャッチ画像と記事の概要を並べて表示させるには、MTAssetThumbnailURLタグで画像を。MTEntryExcerptタグで記事の概要を出力しますが、記事本文の中に
<figure><a href="/img/2017-12-23code.jpg" title="シンタックスハイライト"><img alt="シンタックスハイライト" src="/assets_c/2017/12/2017-12-23code-thumb-320xauto-3196.jpg" width="320" height="180" /></a><figcaption>シンタックスハイライト</figcaption></figure>
投稿画面で、タグの挿入などをサポートする<a href="http://www.tinybeans.net/blog/download/mt-plugin/ceb2-plusutility.html">CEB2_plusUtility</a>プラグインをカスタマイズしてみます。
のように画像を埋め込んでfigcaptionタグでキャプション表示をさせていたりすると、MTEntryExcerptタグはHTMLタグを除去して
シンタックスハイライト
投稿画面で、タグの挿入などをサポートするCEB2_plusUtilityプラグインをカスタマイズしてみます。
Googleのシンタックスハイライトgoogle-code-prettifyに対応するため、<code>タグにクラスを付与することができます。
なお、...
というように、本文には入れたくない画像のキャプションが文頭に残ります。
そこで、MTEntryBodyタグから、正規表現によりregex_replaceグローバル・モディファイアでfigcaptionタグで囲まれたキャプションのテキストを消去してから、MTSetVarBlockブロックタグで変数に代入し、HTMLタグをremove_html="1"グローバル・モディファイアで除去してから出力しています。
具体には、
<$mt:EntryExcerpt words="100"$>
を、
<$mt:EntryExcerpt no_generate="1" setvar="entry_excerpt"$>
<mt:Unless name="entry_excerpt">
<mt:SetVarBlock name="regextext"><$mt:EntryBody regex_replace="/<figcaption>.*?<\/figcaption>/g",""$></mt:SetVarBlock>
<$mt:Var name="regextext" remove_html="1" trim_to="100+..."$>
</mt:Unless>
として置き換えました。
正規表現については、テキストエディタなどの検索・置換で動作確認してから行ってください。
コメント