Search

2014/08/21

bloggerであるURLの投稿やページだけウィジェットに条件を付ける「フルパスURLの修正」

下記の写真一覧のときに、いろんなウィジェットを消したくなるときもある。
http://nokoshitamono.blogspot.jp/2014/08/blogger.html

そういうときはcond ifを使うと良い。
基本は下記のような感じ。

<b:if cond='data:blog.url != "http://からのフルパスのURL"'>
ウィジェットの実行コード
</b:if>

たとえば、この投稿だけ、あるスクリプトを実行したいなら下記のような感じ。
※.jpではなく、.comなところに注意。

<b:if cond='data:blog.url != "http://nokoshitamono.blogspot.com/2014/08/bloggerurl.html">
ウィジェットやjavascriptやHTMLのコード
<img scr="http://testtesttest.com/test.jpg" /> 単なる条件なのでHTMLもOKです。


</b:if>

コード実行のelseをしたいときは下記。
※else ifは無いらしいでの、工夫して実装。

<b:if cond='data:blog.url == "http://からのフルパスのURL"'>
何か実行したいコード
<b: else/>
ウィジェットの実行コード
</b:if>

詳しくは下記を参照。

Conditional Tags for Blogger Page Types  techinfoknow.comさん
http://www.techinfoknow.com/2014/01/blogger-page-type-conditional-tag.html

「フルパスURLの修正」
フルパスのURLについて。
この投稿だと下記になるが、このまま指定してもif分岐がtrueにならない。
http://nokoshitamono.blogspot.jp/2014/08/bloggerurl.html
下記のようにドメインの最後をjp>comに変更したらtrueになった。
http://nokoshitamono.blogspot.com/2014/08/bloggerurl.html
数年前にblogspotのcom表記が国に変更された。
しかし、内部的には転送しているだけらしい。
そのため、元のURLのcomをif文で使わないとダメらしい。
なお、独自ドメインに変更している場合は、そのままでOKだった。



-------------下記は上手くいかなかったので参考--------------
しかしコピペして動作しないときもある。
原因不明だった。
ところが、下記のように変更したら実行できた。

&lt;b:if cond=&#39;data:blog.url == &quot;http://のフルURL&quot;&#39;&gt;
ウィジェットの実行コード
&lt;/b:if&gt;

そう、HTMLの特殊文字でタグを表記する。
何か違和感を感じるがそうなってしまう。
ほかの部分は普通に<b:if とか書かれているのに、追加したとこだけ&lt;b:if とかになってしまう。
可読性は良くないけど、動作しないと困る。
bloggerのレイアウト変更は難しいです・・・。

1 件のコメント: