記事本文中に挿入される <!-- MATCH SEESAA : NO FLOATING -->
をブチ消すの巻。
暇見て使える関数ねーかなーと探していたら、「substr
」関数が使える事が判明。
修正(2010/11/11)
元々ココにあった記載は削除しました。
色々試してみたトコロ、次の条件を同時に満たす場合に挿入される模様。
・記事の詳細設定の「キーワードマッチ」が「無効」
・広告設定の「広告の種類」が「キーワードマッチのみ」か「キーワード / 記事下」
…なので、記事に広告つけてない=全ての記事の詳細設定のキーワードマッチが無効なのであれば、広告設定・広告の種類を「記事下広告のみ」に設定変更するのが手っ取り早い。
じゃあと広告設定を変更したところ、以前ココに記載していたコードでは常に先頭35文字が削除される結果になる事が発覚。
<% if:article.body | bodyfilter(article_info,blog) | substr(0,35) eq '<!-- MATCH SEESAA : NO FLOATING -->' %>
コメント挿入有無の判定を上記のようにしていましたが、if文で関数の数珠繋ぎを使う事はできず、実質 <% if:article.body %>
と同じ結果になります。article.body
…即ち記事本文が空でなければ真になり、結果、全ての記事で先頭35文字が削除されていました。
ではどうするか?といったところですが、ブログの広告設定と記事詳細設定のキーワードマッチの値により、先頭35文字を削除するかどうかを判定する事も可能です。一応サンプルコード(要所のみ抜粋)も載せておきます。但し、今後挿入されるコメント文字列が35文字ではないものになる可能性もある事には注意してください。
元のコードは以下です。
<% article.entire_body | bodyfilter(article_info,blog) %>
これを次のようにします。
<% if:blog.ad_types ne '2' %>
<% if:article.affiliate_link == 0 %>
<% article.entire_body | bodyfilter(article_info,blog) | substr(35) %>
<% else %>
<% article.entire_body | bodyfilter(article_info,blog) %>
<% else %>
<% article.entire_body | bodyfilter(article_info,blog) %>
<% /if %>
<% /if %>
更に追記(2010/11/11)
数珠繋ぎが使えないなら普通に書いたらどなんだろ?と試してみたら、でーきたー!