コメント&トラックバックページの変更を行いました。

  1. このブログ(バックステージ)では「コメント・トラックバックを表示」をクリックすると同じページ内にコメント・トラックバックが表示されるようにしました。
  2. ヘルニアブログでは、コメントページを保管するディレクトリを変更し、新着コメントへはTOPページからワンクリックで飛べるようにしてみました。

このブログ、当初はコメントページ&トラックバックページが記事本文と別ページに表示されるように、and新着コメントにTOPページから直接飛べないように設計してありました。
さすがにアクセシビリティが悪い気がしたので、チョット変更して様子見。

アクセシビリティをとるか、スパムをとるか

今まで不便な仕様にしていたのには訳があり、先行してMovableTypeで運営する3DCGブログへの(特に海外からの)スパムコメント、スパムトラックバックが目を覆いたくなるぐらい(1日50~100件ある)酷いのです。

と言う事で暫くの間、新ブログのコメントページへは(スパム用収集ボットには効果はない気がするけど)nofollow属性のリンク1~2個間に抑えてみたのです。
しかし、これが効果ありました。
(ブログが稼動しているドメイン名とMTを設置しているドメイン名が違うのが効果があったのかもしれないけど)
結果、新たに8月からMTに引っ越してきた3つのブログは、稼動4ヶ月経った所でまだスパムは1日数件程度(CGブログはこの時点で100件/日あった)。

検証のため、アクセスの利便性のためサイト構造の変更

「ひょっとしてブログの内容によるかも?」「やっぱアクセシビリティ悪いよなぁ」という考えのもと、(管理する中で)アクセス数の少ないブログで暫くボットの目に晒され易い場所に敢えて移動。

  1. 「MTとブログを、異なるドメイン名で運用していればスパムは減る」という仮説が正しければ、これでもスパムは増えないはず。
  2. Ping飛ばすメインの記事url内にコメント&トラバ情報が含まれていれば問答無用でbot収集されるなら、1ヶ月以内にスパムの嵐に見舞われるはず。

どうなるか、暫く静観です。

(現状、FireFoxで上手く作動していません。上手く作動するようになったらソース公開します)

コメント欄開閉 javascript ソース一例

IE、FireFox、GoogleChromeで作動確認とれましたので、ソースをアップしてみたいと思います。
似たような仕掛けを作られているサイトさんからソースを借用・改編していますので、詳しい事は解りません(^_^;
細かい所で間違っていたり、変数名が参考元まんまだったりしますが、自分なりに極力シンプルに書き直したつもりです。

<script type="text/javascript">
<!--
function showMore(varA1, varB1){
var123 = ('comment');
varABC = ('c-open');
if( document.getElementById ) {
if( document.getElementById(var123).style.display ) {
if( varB1 != 0 ) {
document.getElementById(var123).style.display = "block";
document.getElementById(varABC).style.display = "none";
} else { document.getElementById(var123).style.display = "none";
document.getElementById(varABC).style.display = "block"; }
} else { location.href = varB1;
return true; }
} else { location.href = varB1;
return true; }
}
//-->
</script>

▲上記を<head>~</head>内、又は<body></body>内に記述。今回の様に変数が固定の場合は.jsファイルで外部に置いてもOKです。


      <!-- ■ここからスイッチになるリンク表記です■ -->
      <div class="foot" id="c-open">
<MTEntryIfCommentsOpen> 
<a href="#comment" onclick="showMore('comment','#comment');return false;" title="コメント・トラックバックが表示されます">コメント・トラックバックを表示</a>
C[<$MTEntryCommentCount$>]</MTEntryIfCommentsOpen>
<MTIfPingsActive>T[<$MTEntryTrackbackCount$>]</MTIfPingsActive>
      </div>
      <!-- ■ここまでがスイッチになるリンク表記です■ -->


<div id="comment" style="display: none">
      <!-- ■ここに開閉したい内容を書きます■ -->
      <div class="com_and_tra2">
            <a href="#c-open" onclick="showMore('c-open',0);return true;" title="コメント欄を閉じる">閉じる</a>
      </div>
</div>

▲上記が実際にページ内で開閉させる部分。緑字はMT用タグなので、MTを使用しない人には関係ありません。赤字青字部分は色に合わせて任意でOK。

「<!-- ■ここに開閉したい内容を書きます■ -->」に開閉作動させたいタグ、情報を打ち込めばOKです。

当初FireFoxでjavascriptが上手く作動せず頭を抱えてしまいましたが、文字列変数を引用符で囲み忘れると云う初歩的なミスが原因でした(^_^;