はじめに

ムーバブルタイプで記事リストの合間に広告などを入れたい場合はどうすればいいのか考えてみた

繰り返しをMTタグで作れればいい

MTタグには専用の変数タグがあるので、それを加算できるかどうか調べてみたら、普通にできるそうだ。

なので、流れとしては、

  1. カウント用の変数を宣言
  2. mt:Entries が呼ばれたら カウントアップ
  3. 特定の件数の際に広告のテンプレートを呼び出す

的な

実装

ということで、各ブログのメインページに実装してみた


<MTsetVar name="count" value="0"> 	
  	<div id="cover">
	<mt:Entries limit="$entries_per_page" search_results="1">
	<MTSetVar name="count" value="1" op="+"> //カウントアップ
		
		<mt:If name="count" eq="5">
			<section id="entry-<$mt:EntryID$>" class="entry-asset entry">
				<$mt:Include module="AMP用記事内広告2" parent="1"$>
			</section>
		<mt:ElseIf name="count" eq="10">
			<section id="entry-<$mt:EntryID$>" class="entry-asset entry">
				<$mt:Include module="AMP用記事内広告3" parent="1"$>
			</section>
			<MTsetVar name="count" value="0"> //カウントを戻す
			
		</mt:If>

コードの説明をすると、まず、カウント用の変数を宣言。


<MTsetVar name="count" value="0">

mt:Entries のすぐ下にカウントアップ用のコードを書く


	<mt:Entries limit="$entries_per_page" search_results="1">
	<MTSetVar name="count" value="1" op="+"> //カウントアップ

5件と10件ごとにそれぞれ異なる広告を出したかったので、数値が5と10の時にそれぞれのテンプレートを呼び出す用に記述。10件までいったらカウントを戻すようにした。


	<mt:If name="count" eq="5">
			<section id="entry-<$mt:EntryID$>" class="entry-asset entry">
				<$mt:Include module="AMP用記事内広告2" parent="1"$>
			</section>
		<mt:ElseIf name="count" eq="10">
			<section id="entry-<$mt:EntryID$>" class="entry-asset entry">
				<$mt:Include module="AMP用記事内広告3" parent="1"$>
			</section>
			<MTsetVar name="count" value="0"> //カウントを戻す

とりあえず満足