Top Page > FC2ブログ > FC2ブログのエリア変数(4)同じ内容を複数のページに表示する

FC2ブログのエリア変数(4)同じ内容を複数のページに表示する

FC2ブログには「エリア変数」という独自の「変数」があります。
「エリア」というのは、例えば「カテゴリページ」とか「タグページ」のように、FC2ブログ内で分けられているページを指します。たぶん。(よく知らないw)
「エリア変数」はブログの「エリア」に関する変数で、「表示させるエリア」や「表示させないエリア」を指定することができる変数です。



「エリア変数」については、私なりに記事を書いてきました。
関連記事を案内しておきますが、ただの自己満足なので、別に読まなくてもいいです。ハイ。






私は、「エリア変数」には「プラス」と「マイナス」みたいな側面があると思っています。「表示させる」か「表示させない」か、です。
まあ、本当にそうなのかはわかりません。正確な知識があって記事を書いているわけではありませんので、話半分で読んでいただけたらいいんですけども。


例えばですが、「ページエリア」の「プラス(表示させる)」が「<!--page_area-->」で、「マイナス(表示させない)」が「<!--not_page_area-->」です。
「表示させない」という指示をする場合は、プラスの変数に「not_」を付けるわけですね。



「エリア変数」は各ページに色んな指示を出すことができるので、どうにかして利用したいと思って調べてみましたが、私に理解できるようなものではありませんでした。難しいですね。
なので、「エリア変数」に関する記事はこれで終わりにしたいと思います。(正直、飽きたw)
この記事では、FC2ブログの「エリア変数」を使って同じ内容を複数のページに表示させる方法を書いてみたいと思います。



ちなみに、以下の説明はあくまでもテンプレート上で確認しただけなので、この結論が絶対に正しいわけではありません。信用しない方が良いと思いますw





プラスのエリア変数を使ってまとめて記述する


例えば、固定記事(注意事項など)を「カテゴリページ」と「月別アーカイブページ」と「タグページ」に表示させたいと思ったとします。「トップページ」や「個別記事ページ」には表示させたくないわけです。
そんでもって表示させたい内容がめちゃくちゃボリュームのあるものだった、と仮定します。


「カテゴリページ」や「アーカイブページ」など1つ1つの「エリア」を指定して、個別に「プラス」のエリア変数と指示内容をHTMLに記述すれば間違いなく表示できるんですけど、内容量が多いのでHTMLがごちゃごちゃした記述になってしまいます。
同じ内容なんだから、表示させたいページをまとめて指定することができればいいよね、ということです。


つまり、この記事のテーマは「例えば3つのエリア(カテゴリ・タグ・月別アーカイブページ)に注意事項などの固定記事を表示させる場合、一気にまとめてHTMLに記述できるのか?」です。
しつこいですが、1つずつHTMLに記述すれば表示できますからね。
あくまでも「まとめて」HTMLに記述することで意図したエリアに表示させることができるのか?がテーマです。



で、「表示させる」という意味で普通に「プラス」のエリア変数を使ってまとめて記述しようとしたら


<!--category_area-->
<!--tag_area-->
<!--date_area-->
カテゴリ・タグ・月別アーカイブページに表示させたい内容
<!--/date_area-->
<!--/tag_area-->
<!--/category_area-->



なんて書きたくなるかもしれませんが、コレは絶対にダメです。


なぜならプラスのエリア変数は1つずつしか表記できないからです。
<■FC2ブログのエリア変数(1)>の項目「4番」の「エリア変数の組み合わせ方(プラスの変数)」でも説明していますが、何かを特別にどこかのページだけに表示させたい時に使うのが、プラスのエリア変数だからです。



マイナスのエリア変数を使ってまとめて記述する


上記のように「プラスのエリア変数を使ってまとめて記述」すると、「カテゴリページ」にも「アーカイブページ」にも、表示させたい内容は何も表示できず、何も無かったことになってしまいます。


固定記事(注意事項など)を特定のページ(「カテゴリページ」「月別アーカイブページ」「タグページ」)に表示させたい場合、HTMLで一気にまとめて記述したいならば、「プラス」ではなく「マイナスのエリア変数」を使ってまとめて記述するしかありません。



「表示させたくない内容」を記述するのがマイナスのエリア変数です。
なので、表示させたくない全てのエリア(=マイナスのエリア)の開始タグと終了タグで「表示させたい内容」を挟むことで、「(表示させたくないエリア以外に)表示させる」と看做せばいいと思います。
(もはや言葉遊びのようで混乱するかもしれませんが、冷静に考えていただければ理解できると思います。)


「表示させたいエリア」=「すべてのページから表示させたくないエリアを抜いたエリア」
ということです。



記事<■FC2ブログのエリア変数(1)>の項目「5番」の「エリア変数の組み合わせ方(マイナスの変数)」で説明しているように、マイナスのエリア変数は複数を組み合わせることができるので、あくまでも「表示させたくないエリア」を組み合わせて「それ以外には表示させる」という意味の指示にしてあげれば良いです。


<!--not_titlelist_area-->
<!--not_index_area-->
<!--not_search_area-->
<!--not_permanent_area-->
<!--not_edit_area-->
カテゴリ・タグ・月別アーカイブページで表示させたい内容
<!--/not_edit_area-->
<!--/not_permanent_area-->
<!--/not_search_area-->
<!--/not_index_area-->
<!--/not_titlelist_area-->



こうすれば、「カテゴリページ」と「タグページ」と「月別アーカイブページ」にだけ表示させることができます。(カテゴリ別ページとタグ別ページと月別アーカイブのページのマイナスのエリア変数を記述していませんからね。)



ところがですね、この場合は以下のような結果になってしまうのです。


●トップページ:表示されない
●トップページの「次ページ」:表示される
●カテゴリ・タグ・アーカイブ:表示される
●カテゴリ・タグ・アーカイブの「次ページ」:表示される
●全記事一覧:表示されない
●全記事一覧の「次ページ」:表示されない



「表示させたくない」エリアとして「カテゴリページ」「タグページ」「月別アーカイブページ」の3つを指定しなかったので、指定しなかった(除外した)3つのエリアでは意図通りきちんと表示されます
もちろん、ちゃんと「表示させたくない」エリア変数として指定していた「トップページ」や「全記事一覧ページ」では表示されません。「表示させない」という指示ですから当然です。



意図した通りに表示・非表示をコントロールできているように見えていても、「トップページ」の「次ページ」には表示されてしまうことに注意してくださいね。
「トップページエリア」なるエリア変数が存在しないからです。
「<!--not_index_area-->」はあくまでも「ブログのトップページ(インデックスページ)」に対して「表示させない」という指示を出しただけなのです。(「<!--not_index_area-->」については<■FC2ブログのエリア変数(2)>で説明しています)



何と言うか、同じように「表示させない」と指示している、例えば全記事一覧ページ「<!--not_titlelist_area-->」の「次ページ」が表示されないこととは別次元のお話だということはご理解ください。
エリア変数への指示は、そのエリア(例えば全記事一覧ページ)のインデックスページ(エリアのトップページ)に対してのみ行われるわけではありません。そのエリア全体に対して指示が出ます


むしろ「トップページ」が異質なのです。
だって「<!--not_index_area-->」はピンポイントで「ブログのトップページ(インデックスページ)」を対象とするのですからね。「次ページ」を含む範囲を指定しているわけではありません。あくまでも「ブログのトップページのみ」を対象としていますから。(私の説明が下手でよくわからないでしょうが、ニュアンスで理解してくださいw)



「次ページ」を表示させない「<!--not_page_area-->」を使ってみる


では、試しに「<!--not_page_area-->」を記述してみます。
「次ページ」が存在するエリアに対して「表示させない」という指示です。
これを記述することで、トップページの「次ページ」に表示されてしまう現象を阻止したいと思います。


ここでやりたいことは、あくまでも「カテゴリページとタグページと月別アーカイブページにだけ内容を表示させる」ことであり、トップページの「次ページ」には表示させたくないのですから、「次ページ」が存在するエリアを表示させない「<!--not_page_area-->」を使います。


<!--not_page_area-->
<!--not_titlelist_area-->
<!--not_index_area-->
<!--not_search_area-->
<!--not_permanent_area-->
<!--not_edit_area-->
カテゴリ・タグ・月別アーカイブページで表示させたい内容
<!--/not_edit_area-->
<!--/not_permanent_area-->
<!--/not_search_area-->
<!--/not_index_area-->
<!--/not_titlelist_area-->
<!--/not_page_area-->


●トップページ:表示されない
●トップページの「次ページ」:表示されない
●カテゴリ・タグ・アーカイブ:表示されない
●カテゴリ・タグ・アーカイブの「次ページ」:表示されない
●全記事一覧:表示されない
●全記事一覧の「次ページ」:表示されない



「<!--not_page_area-->」を記述しただけで、すべてのページに表示されなくなってしまいました


当然のことです。
「<!--not_page_area-->」は「次ページ」があるものすべてを表示させない変数なのですからね。(<■FC2ブログのエリア変数(3)>で説明しました)



この場合、「カテゴリ・タグ・アーカイブページ」(以下「カテゴリページ」と称します)には「表示させない」という指示は出していませんが、「カテゴリページ」にだって「次ページ」があるわけですよ。
「<!--not_page_area-->」は「次ページ」があるものすべてを表示させない変数なのだから、「カテゴリページ」だって「次ページ」が存在するなら表示させません。



同じ内容を複数のページに表示したい場合(まとめ)


以上、色々と検証してきましたのでまとめておきます。



まず、同じ内容を複数のページに表示したい場合に、プラスのエリア変数を使って複数のエリアをまとめて指示することはできません。プラスのエリア変数は1つずつしか使えないからです。
なので、HTMLにまとめて記述して同じ内容を複数のページに表示したい場合はマイナスのエリア変数を使ってください。



そして「表示させない」と指示したマイナスのエリア変数でもトップページの「次ページ」には表示されてしまうことにご注意ください。
「次ページ」を外そうと「<!--not_page_area-->」を使ってしまうと、「次ページ」がある全てのページに表示されなくなりますので、表示させたいエリアでも非表示になってしまう可能性があります。



結果、同じ内容を複数のエリアに表示させるために、まとめてコード記述しようなんて思わない方がいいですね。どんなに内容量が多いコード記述になったとしても、まとめて書こうなんて思わない方が無難です。


同じ内容を複数のエリアに表示させたいなら、プラスのエリア変数を使って、1つずつ個別に「エリア変数」と指示内容をHTMLに記述してあげる方が確実です。
HTMLの記述が膨大になってしまおうとも、個別に1つずつ、エリアを指定して表示したい内容を繰り返して記述してください。
面倒だけど、コレしか方法はありません!




次の記事の紹介

次の記事では、FC2ブログのテンプレート「basic_white」の検索結果ページに「検索ボックス」を表示させる方法を説明します。
ついでに、検索結果の表示方法も変更します。「日付→カテゴリ→記事タイトル」という順番で表示されているものを「日付→記事タイトル→カテゴリ」の順番に変更し、カテゴリ部分の色を変更します。


FC2ブログ【basic_white】(10)ブログ内検索結果ページに検索ボックスを表示させて、記事タイトルやカテゴリ部分の文字色を変更する
FC2ブログには「検索フォーム」つまり「検索ボックス」を設置することができます。公式プラグインに「検索フォーム」があるので、これを追加すればいいです。元々私は「検索フォーム」を導入していなかったんですが、今回‥‥



posted by mameemon | Comment ( 0 ) | Category ( FC2ブログ )
この記事へのコメント
コメントを書く
お名前:
コメント:
認証コード: [必須入力]

※画像の中の文字を半角で入力してください。