カスタムフィールドに値が入っていたら実行したい
2008年11月 7日 01:21| コメント(0)| トラックバック(0)カスタムフィールドに値が入っているときと、入っていないときで処理を分けたい。
カスタムフィールドに値が入っていたら実行
<MTIfNonEmpty tag="hoge"> : : </MTIfNonEmpty>
tag="hoge" の部分にカスタムフィールドで取得したテンプレートタグ名を入れる。
カスタムフィールドに値が入っているときと、入っていないときで処理を分けたい。
<MTIfNonEmpty tag="hoge"> : : </MTIfNonEmpty>
tag="hoge" の部分にカスタムフィールドで取得したテンプレートタグ名を入れる。

前に書いた「画面に表示ぜずともRSSでは取得される」の続き。
対処法としては、atom.xmlを書き換えることで不要な記事まで最新記事として扱わないで済むようになる。
たとえばこのサイトなら、エントリの本文が存在せずタイトルのみの記事で構成されているカテゴリがある。
そのカテゴリの記事は、自分用であって、配信される必要はない。
このように「最新情報に載せないでいい記事」を指定して除外した上で配信することができる(通常のMTタグと使い方は同じ)。
逆に「特定のカテゴリの記事だけ配信したい」ときは、category="" で指定する。

MovableTypeは記事を作成する画面(投稿画面)で「概要」「キーワード」を入力できるのに、デフォルトのテンプレートにmetaタグのdescriptionやkeywordの記述がない。
10年前には当たり前に記述していたものであり(私だけか?)、ひと昔前まではSEO対策にも効果があったと思うが現在は果たしてどうなのだろうか。
キーワードが今でも検索の助けになるなら、しっかり入れておきたい。
概要が記述されている場合には、そちらが優先されて検索結果にも表示される(ことが多い)。
ということで、可能な限りmetaタグにキーワードと概要を入れたい。
「キーワード」欄に記述があればそちらを優先し、なければ「タグ」欄の記述を「キーワード」としてmetaタグのname="keyword"に挿入する。
概要については「概要」に記述があればそちらを優先し、なければ記事の先頭から100文字をmetaタグのname="description"に挿入する。
上記を満たすソースの記述は、下記のようになる。

(レイアウトを一切指定していないスタイルシートを適用した状態。)
メインページのテンプレートから、不要な部分を削る。慣れないうちはひとつひとつ消しながら動作の確認をすると覚えやすい。
<div id=""></div>、<div class=""></div>、<span class=""></span>は動作に直接影響しないので、すべて取り去る(囲っているタグのみ捨てる。囲まれている中身は捨てないで残す)。
<mt:Ignore>はただの説明書きなので、これも取り去る。
この作業だけで、ソースは随分スッキリするはずである。
(ただし、レイアウトは瞬時に崩れる。)
MovableType4.2では、divタグで囲むべき部分がすでに部品化されている。
よって、いらないタグを取り除くと下記のようになる。
※idやclassは定義があって存在価値が生じるので、すべて除いた。