スポンサーサイト

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

FC2ブログでコメントの無い記事のコメント欄の見出しを消す方法

長ったらしいタイトルになりましたが、FC2ブログではテンプレートの環境上、記事に対するコメントが無い場合でもコメント欄の見出しが表示されてしまいます。トラックバックの場合も同様です。だったら見出しを書かなければ良いのかもしれませんが、それだと文書構造的におかしいですし、idを付けてリンクしたい場合にも不便かもしれません。今の所は見た目が美しく無いという弊害以外には特に不便さを感じなかったのと、労力に見合うだけの結果が得られそうに無かったので放置していたのですが、少し真面目に考えてみました。JavaScriptなどを使用すればあっさりと解決する事なのかもしれませんが、私は常にオフの状態で閲覧しているので今回も何とかCSSで頑張ってみました。

まず、なぜ見出しが消えないのかと言うと <!--comment_area--><!--/comment_area--> 内に記述する事によって消す術(変数)が無くなってしまうからです。かといって <!--comment--><!--/comment--> 内に持ってきてしまうと、コメントの度に繰り返されてしまいます。それでは具合が宜しくないので外に置いて尚且つどこでも使える単変数が無いか探してみましたが、コメントに連動するような変数は見当たりませんでした。それならどうするか。仕方がないので <!--topentry--><!--/topentry--> 内の変数を用いる事になります。となると一番簡単なのはコメントの数を表す <%topentry_comment_num> です。これならばコメントが無い場合は必ず0という数字を返してくれます。これをclass名に利用すれば display:none; などで消す事が可能です。

.no0 {display:none;}
<!--permanent_area-->
<!--topentry-->
<%topentry_body> などなど

<h2 class="no<%topentry_comment_num>">コメントの見出し</h2>
<!--/topentry-->
<!--/permanent_area-->

<!--comment_area-->
<!--comment-->
<%comment_title> やら <%comment_name> など
<!--/comment-->
<!--/comment_area-->

これくらいの構造の編集が出来る人に向かっての解説はいらないと思うのでポイントだけ。<!--topentry--><!--/topentry--> 内に見出しを入れることによってエントリが繰り返して表示される事になると何度も見出しが登場してしまう事になるので、個別記事に関しては <!--permanent_area--><!--/permanent_area--> を利用して個別化を図る事になります。個別記事表示ならばエントリが繰り返し表示される事はありません。これがかなり面倒かもしれませんが、単純な構造ならば <!--permanent_area--><!--/permanent_area--> と <!--not_permanent_area--><!--/not_permanent_area--> で分ければ良いでしょう。そうでなければとにかく個別記事のエントリを他から切り離して下さい。

次に見出しの消し方ですが、class名に <%topentry_comment_num> を利用し、class="no0" になった場合に限り display:none; が適用されるようにします。実際に利用する時はもっと適切なクラス名を考えて下さい。今回頭にnoを付けたのはclass名の先頭に数字が使用できない為です。

残念ながら実際に可動しているブログで試行した訳ではないのでもしかしたら不具合があるかもしれません。それから他にもっとスマートな方法もあるかもしれません。そしてエントリの次にコメント欄という順番でなければ意味がありません。そういった事を考慮して試行してみて下さい。また、トラックバックの見出しも同じように出来るかと思ったのですが、順番的に無理があるように思いました。でもよくよく考えてみると<!--topentry--><!--/topentry--> 内に <!--comment_area--><!--/comment_area--> を丸々入れてしまって、トラックバックの見出しを <%topentry_tb_num> を利用して上の方法と同じようにして消す事も可能かもしれません。これまた試行していないのでわかりませんが、トラックバックの場合はトラックバックURLがあるのでトラックバックが無くとも書き方を工夫すれば常に見出しが表示されていても違和感はないかもしれません。まあそんな事を言い出したらコメントの場合も投稿フォームが表示されているので、見出しのレベルを変えて書き方を工夫すれば特に問題視する箇所ではないのかもしれませんが。

今回の検証で <!--permanent_area--><!--/permanent_area--> 内では記事が繰り返し表示されないので <!--topentry--><!--/topentry--> 内に何(他の変数領域)を入れても割りと自由が利くようだという事が判明しました。そう考えるとトラックバック一覧の後に追記箇所を持ってきたりと、まだまだ面白い事が出来そうですが、それはまた別の機会に譲りたいと思います。

スポンサーサイト

コメント一覧

コメントの投稿欄

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