スポンサーサイトリスト型変数の内容を最初の1つだけ出力する

記事情報

投稿日時
--------T--:--:--+09:00
カテゴリー
スポンサー広告

記事本文

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

記事情報

投稿日時
2008-01-14T01:36:08+09:00
カテゴリー
FC2BLOG
タグ

記事本文

今回も、FC2ブログの独自変数を利用した小技についてです。前回の記事を踏まえたうえで読んでください。そうでないとわけがわからんかもしれません。

いわゆるリスト型変数(前回勝手に名付けた)は、その内容を繰り返して表示するものです。何回繰り返すかは、該当する値の数によります。たとえば<!--archive-->~<!--/archive-->は、記事が投稿された月の数だけその内容を繰り返します。

しかし今回紹介する方法を使えば、リスト型変数の1つ目の項目だけを表示することが可能となります。リスト型変数に分類される変数であれば、どの変数にも応用できます。つまり、たとえば<!--topentry-->~<!--/topentry-->にも使えるので、最新の記事だけを表示する(もちろん環境設定の記事の表示件数をいじらずに!)ということも可能になります。……これはもしかしたら小技じゃなく大技かもわからんね。

では、topentryを使用した場合を例にとって解説します。通常下記のようになっている部分に

<!--topentry-->
内容(<%topentry_body>等)
<!--/topentry-->

次のように強調部分を書き加えるだけです。(追記:FCafeのDanielさんにコメント欄で指摘を頂き、タグの挿入位置を修正しました。

<!--topentry-->
内容(<%topentry_body>等)
<!--not_edit_area--><!--/topentry--><!--topentry--><!--/not_edit_area-->
<!--/topentry-->

以上で完了。どういう仕組みなのかは謎ですが、これでtopentryの内容が最初の1つだけ出力されます。2つ目以降は出力されないので、もちろんソースにも全く現れません。

ここではnot_edit_areaを用いましたが、いわゆるフラグ型変数であれば他のものでも問題ないです。詳しくは前回の記事を参照してください。

他にどういう便利な使い方があるかなぁと考えてみました。そこで思い出したのが、FCafeさんの空リンク非表示 2という記事。もう3年近く前の記事ですが、今回紹介した手法を使えば、環境設定の「最新記事一覧」の表示件数を1件にすることなく同じことが実現できます。

やることはさっきの例と全く同じですが、一応書いておきます。リンク先の【方法】の項の一番下、head領域の部分の既述を以下のように書き換えるだけです。(追記:こちらもDanielさんのコメントの通り修正しました。

<style type="text/css">
        <!--recent-->
        .nxt<%recent_year><%recent_month> {display: none;}
        <!--not_edit_area--><!--/recent--><!--recent--><!--/not_edit_area-->
        <!--/recent-->
</style>

強調部分が追加されました。空リンクを非表示にしたいけど、最新記事一覧を犠牲にしたくない、という人にはおすすめです。(追記:別の方法があるので、Danielさんのコメントを参照してください。

今回紹介した小技、まだまだ使い道があると思います。Danielさんならもっとナイスな使い方を思いつきそうです。あとこの技のカラクリも解き明かしてくれそうな気が……というわけで時空を超えたトラバを送ってみました。

スポンサーサイト

コメント

daniel

はじめまして。 ・・・・いや、まったく驚きです

よく このような方法を見付け(思い付き?)ましたね !
システムのタグ解釈順序とかの関係でしょうか。  私も追試させていただきましたが、
(リストブロックはエリアブロックと襷掛けになると一回で出力停止してしまうようですね)
但し、これですと edit_area ではホントに何も出力されませんから 
以下のようにされた方が良いでしょう。

<!--recent-->
.nxt<%recent_year><%recent_month> {display: none;}
<!--not_edit_area--><!--/recent--><!--recent--><!--/not_edit_area-->
<!--/recent-->


ちなみにワタクシは最近、 このような用途では以下のようにしています

.nxt<!--recent--><%recent_year><%recent_month>,.hoge<!--/recent-->{display:none;}


なにはともあれ 今後とも是非宜しくお願い申し上げます。

kofumo

danielさん、はじめまして。
この方法(前の記事のも)は、あることをやろうとして試行錯誤をしていたらたまたま発見した偶然の産物です。
何がどうなっているのか、本人はあまりよくわかっていません……

あ! これだとたしかにまずいですね。ご指摘ありがとうございます、修正しておきました。
というか、空リンク非表示の改良版も既にあったんですね。こういうのをポンポン思いついてしまうのが凄いなぁといつも思います。

こちらこそ、よろしくお願い致します(すでにお世話になりっぱなしですが)。

コメントフォーム (C)
管理者にだけ表示を許可する

(P)

トラックバック

トラックバックURL
http://kofumo.blog28.fc2.com/tb.php/9-8941c00a

奥付

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。