先日、WordPressのテーマを変更してみました。
以前のbrownlineはまぁまぁ気に入ってはいましたが、ブラウンを基調とした暗い色使いは夏には不向きかと思われましたので。
それと、3カラムのデザイン。一時期は3カラムを気に入っていましたが、どうもサイドバーが暑苦しくなる気がして来ました。なので、2カラムにしてWidgetsを減らそうかと。
それで、白っぽい2カラムのテーマを探してみたところ、このテーマが引っかかりましたので。JaS Personal Publisher 2というものです。
インストール後の変更は、自分で書いたJavaScriptのコードを何か所かに埋め込むことと、フォントサイズなどを調整するため.cssを少し書き換えたくらい。
今はあまり改造を施したくはありません。面倒ですからね。
これでしばらく使ってみることにします。
スパマーがコメントスパムを送って来た際に404を返すため、少し前にコメントポストを担うwp-comment-post.phpのファイル名を変更しました。
経過は順調で、その後はピッタリとスパムが来なくなったため安心していたのですが。
アクセスログにデンマークのドメインと思われる記録が残されていたため、ちょっと嫌な予感がしたので観察していたところ、その3日後からスパムがまた飛んで来るようになりましたね。
わざわざアクセスして来て読めもしない日本語の記事に何の用かと思ったら、ページソースからコメントポストのactionターゲットを確認していたようで。ご苦労なことです。
改めてファイル名を変更しましたが、これではイタチごっこの感が拭えません。外部に置いた.jsファイルに記述してdocument.write()で書き出すにしても、その.jsファイルを見られたら終わりですしね。
まぁ、それでも少しはマシになるかも知れません。今度やってみることにしましょう。
IPサイマルラジオの”radiko”が試験放送を開始しました。
ニュースリリースでは3月15日からとアナウンスされていますが、実際は14日の夜からもう聴くことが出来ましたね。
放送免許の関係で、関東と近畿だけのサービス提供だそうです。アクセスがあった際にIPアドレスから地域を判別して、放送エリア内からのアクセスに限り聴けるというシステムだそうで。
ただ、現段階ではどうも良くありませんね。
サーバーが弱いのかbandwidthの問題なのかは分かりませんが、とにかくアクセスが遅い。トップページがLoading…のまま止まってしまったりで、そのまま開かないこともままあります。
14日夜から15日朝にかけて断続的にサーバーダウンを繰り返していたようですし、IPアドレスで地域を判別するサービスも誤認だらけで、エリア内からアクセス出来ないとか、あるいはその逆とか、わりと散々な印象ですね。
本放送の開始は9月からと聞きますが、果たしてどうなることやらです。
PS:
箕面の”FM COCOLO”が日本語になってますね。
インターネットラジオが普及するまでは、国内で聴ける英語放送ということで重宝していたんですが。何だかとてもがっかりです。ひどくがっかりです。
ちょっと業を煮やすことがあり、Googleに保存されているいくつかの記事のキャッシュを削除するよう申請したのが2月の19日。
申請に必要な要件としてGoogleのヘルプにも記載があるように、テンプレートのヘッダ部分にnoarchiveを追加。その後はクローラーによるキャッシュの収集はなくなりました。
それはそれで良いのですが、2~3日して確認すると、これまで検索結果の上位に表示されていたコンテンツが軒並み消えていますね。
それも掲載順位が下がったなんてレベルじゃなくて、記事の多くは似たようなサイトとして最終ページ以降にまとめられてしまいました。
![]() |
また、記事のタイトルをコピー&ペーストして検索した場合はおおむね最上位に表示されていましたが、それも10ページ目以降にやっと出て来る始末です。
これ、何ですかね?
Googleのヘルプを読み漁ってみたところ、何らかの違反行為があった場合はペナルティが課せられると書かれています。その場合はサイトのタイトルやURLをそのまま検索してみて、それでも下位に表示されていればという注釈が付いています。
ですが、私のブログにその現象は確認されませんでした。
ということは他に何か理由があるということですが、いきなり掲載順位が大幅に下がったあたりで何をしたかと言えば、上記の「キャッシュ削除申請」と、後はウェブマスターツールにブログを登録したくらいのことです。
ちょっと思い当たるフシとしては、会社のサイトもウェブマスターツールに登録してサイトマップを送信してから検索結果の掲載順位が下がりましたので、もしかしたらそっちかな?とも思ったりもしますが、どうなんでしょうね。
ちなみに、上記の件についてググってみても、キャッシュを削除したら掲載順位が下がるとか、noarchiveしたら後回しになるとか、サイトマップを送信したらどうなるとか、そういった文献は見当たりませんでした。
ともあれ、消して欲しいキャッシュの削除は完了していますし、サーチエンジンから来て欲しくない6つの記事はURLを変更してnoindexを指定してありますので、ここらで一旦元に戻してみようかと。
それでnoarchiveを外し、サイトの登録をウェブマスターツールから削除してみましたが、果たしてどうなることやら、です。
ちなみに、新規投稿も半日くらい反映されなくなっていたものが、noarchiveを外したらまたフレッシュクローラーが数分で来るようになりましたけれども、どこまで関係があるのかは今のところ不明です。
あまりSEOに興味はありませんが、ここまであからさまだとさすがに気にもなりますのでね。
Googleは何を反映させるにも時間がかかりますので、1週間とか2週間とか、そのくらいのスパンで見守ってみることにします。
WordPressのテーマサイトを眺めていて、何となく目に留まったものがありました。
特に変更する必要性は感じていなかったものの、プレビューしてみると悪くなさそうに思えましたので、そのままダウンロード。
サーバーに送った状態でプレビューしてみたかったからですが、それほど弄るポイントも多くなさそうに見えましたので、プレビューを続けながら編集してみることにしました。
ちょっと色が濃いのですぐ飽きるかも知れませんが、まぁその時はその時ということで(笑)。
デフォルトでは、記事のタイトルが2行になった時にその2行目が大きく下に離されていて大変なことに。
早速エディタでstyle.cssを開いて中身を確認すると、該当する部分にどうもよく分からない記述があります。
.post_left {
width: 410px;
height: 67px;
float: left;
line-height: 55px;
margin-left:18px;
}
何がよく分からないって、heightが67pxでline-heightが55pxというところが分からない。
何か裏でもあるのだろうと思って調べてみると確かに裏はありましたが、まぁその辺の話は置いといて、とにかく記事のタイトルが2行になった時に困りますね。ですから、下記のようにline-heightの行をコメントアウトしました。
.post_left {
width: 410px;
height: 67px;
float: left;
/*line-height: 55px;*/
margin-left:18px;
}
記事タイトルはデフォルトでh3だったのですが、それだと大き過ぎるため変更することに。
index.php、page.php、archive.php、single.phpの4ファイルに記述がありますので、それぞれを開いてh4~h6で試してみます。が、どれもしっくり来ません。
それで、とりあえずタグはh4に決めて、サイズはcssで130%に調整することにしました。上記の4ファイルでタイトル部分の記述が微妙に違っているため、下記のように分けて追加。
#contentleft h4{
font-size: 130%;
}
.post_left h4{
font-size: 130%;
}
次に、個別記事のページ。ここだけページタイトルが背景の枠を上に突き抜けていましたので、paddingで調整しよう・・・としたところ、左右のラインが切れてしまってまたまた困ったことに。
ちゃんとコードを読んでから手をつければいいのにとりあえず動くのは私の悪いクセなんですが、これは少々困りました。
.single_title {
width: 530px;
height: 67px;
background: url(images/single_title.jpg) no-repeat;
margin: 0;
/*padding: 0 0 0 15px;*/
padding: 1px 0 0 15px;
/*line-height: 67px;*/
}
結局、ここにも登場する大きな値のline-heightをコメントアウトし、上にpaddingを1pxだけ取ってラインの切れ目を目立たないようにすることでとりあえず。
後のことは明日以降にでもまたゆっくり考えるかも知れませんし、考えないかも知れません。
フォントサイズがデフォルトで12pxと固定でしたので、それを.85emの相対指定に。
body {
background: #332610 url(images/bg.jpg) repeat-x;
color: #FFF;
/*font-size: 12px;*/
font-size: .85em;
font-family: "MS P Gothic", "Hiragino Kaku Gothic","VL Gothic",Tahoma, Verdana, Arial;
margin: 0px auto 0px;
padding: 0px;
}
他の部分は同じくpx値による絶対指定のところを%による相対指定に変更。ブラウザのデフォルトフォントサイズは人それぞれですし、目がいい方ばかりでもありませんからね。
後は例によってJavaScriptの積み替えですが、今はほとんどの関数を外部ファイルに格納してありますので遅滞なく終了。
<script src=./xxx.js>//</script>
<script language=javascript><!--
var loadFlag = 0;
//--></script>
<script language=javascript><!--
checkCookie();
kickAccess();
checkStaySeconds();
//--></script>
これで大丈夫と思ったのですが・・・。
記事を展開する▼ Click here to read More… の行に設定してあるpaddingが地雷でして、そこでまた左右のラインが切れてしまうことに。
これ、cssファイルではなく各記事にstyle指定してあるため、修正しようとするとすべての記事を開いて書き換えなければなりません。面倒がってコピー&ペーストで対応して来たツケが回って来た格好です。
<div style="margin:24px 0px 24px 0px";><a href=javascript:expand('google')>▼ Click Here to Read More...</a></div>
<div id=google style=display:none;>
しばらく迷っていましたが、もう一度各記事を見直してみるチャンスとも受け取れますので、該当部分のstyleを消してdivにclassを割り振る作業を始めることに。今後の修正も楽になりますしね。
ただ・・・エントリーの数が合計で403あります。全部手作業で書き換えですか? ああ、やっぱりそうですか。
横着するものじゃないなぁ・・・。
ブログを書いていて困ることのひとつに、コメントやピンバックのスパムがあります。
スパムを歓迎する人は少ないと思われますので、その対策は大げさに言えば世界中のブロガーにとってのエンドレスなテーマでしょうね。
私もこまめにスパマーのIPアドレス範囲を割り出して.htaccessで個別にdenyしてはいるのですが、確かにそれは結構な行数になっていたりもしますけれども、あちらさんも心得ていますのでね。定期的にIPアドレスを変えて来ますから、正直「いたちごっこ」は免れません。
そもそも、そんな程度でスパムを撲滅出来るなら誰も苦労しないですよね。それほど世界のスパマーが少ない筈もありませんから。
WordPressにはスパムを検知して隔離するAkismetというプラグインがあります。
1年ほど前に書いたエントリーと重複しますが、このAkismetも単にスパムを隔離するだけで、実は根本的な解決にはなりません。何故ならば、「隔離する」ことと「ブロックする」ことは別だからです。
ほとんどのスパマーは同じコメントをスクリプトで大量に送信しますので、書き込めたかどうかを人が目で見て確認することはありません。あくまでサーバーが返すステータスコードだけを見ており、そこで301や302、あるいは403や404が返れば「失敗」、200が返れば「成功」となります。
Akismetはブロックではなく隔離ですから、サーバーはステータスコード200を返しています。
彼らにとっては通ったコメントが表示されていようがいるまいが関係ないので、これはスパム送信成功を意味し、その該当記事は「今後も送り続ける」対象のリストに残ってしまいます。根本的な解決にならないというのはこの部分です。
じゃあ、どうすればいいか。
スパマーは各記事に配置されているコメントフォームから送信しているのではなく、コメントフォームに書き込んだ時と同じクエリをwp-comments-post.phpに直接送って来ます。ですから「それを止めてしまえ」というのもひとつの考え方ですね。
一口に「止める」と言っても、考えられる方法はいくつかあります。
とりあえず効果がありそうに思えるのは「HTTP_REFERERにブログ本体のドメインを含む場合にポストを許可する」ようphpコードを書き換えること。スパマーが自動送信して来るコメントは大抵referrerを持ちませんから、この方法はかなり有効かと思われます。
ただ、これには大きな問題点がひとつあります。それは「非常に面倒くさい」ことです。
phpコードを書き換える訳ですから、いくつものファイルに分かれているプログラムのすべてに目を通し、矛盾が生じないよう書き換えなければなりません。これだけ考えても余裕で眠くなります。
加えて、WordPressのアップデートを行うたびにその作業が待っています。
自分が書いたプログラムならば全体のブロックダイアグラムはおおむね把握していますが、それでもかなりの面倒な作業になるでしょう。ましてWordPressは他人様が書いたプログラムです。改造したものを売る気ならともかく、ただの日記趣味にそこまでの労力は費やせません。
昔からある古典的な方法としては「wp-comments-post.phpをリネームする」というものがありますね。スパマーはそこへ直接actionしてクエリを送って来るのですから、確かにこれも有効だと思われます。
ただ、この方法にも大きな問題点があります。それは「人の目でソースコードを見られたら一瞬でバレてしまう」ことです。
昔、Perlで書いたCGIにスパムがよく来ていた頃、投稿フォーム部分のコードを外部の.jsファイルに格納してdocument.writeで書き出していたことがあります。
action先をソースコードから消せるため当初は効果がありましたが、そのうち誰かが外部の.jsファイルを見たんでしょうね。一度バレたら後はもうザル状態になり、私はまたコードを書き換えてと、結局は無限ループのいたちごっこになってしまいました。
当然、この方法にも限界はあるということです。
ただ、action先をリネームする方法は、一度ざっと全体のコードを見通せばいいだけ(読む必要はない)ですから比較的簡単ですね。現時点でのデフォルトのアクション先はwp-comments-post.phpですから、そのファイル名が登場する部分がどことどこにあって、という情報だけを掴んでおけば簡単に対処出来そうです。
どのファイルにwp-comments-post.phpという記述があるかを調べるには、コンソールから$ perlを実行して下記のプログラムを打ち込みます。
$ cd wordpress/wp-content/themes/bible-scholar
$ perl
@_ = `ls | grep php`;
foreach $_(@_){
$cat = `cat $_ `;
if($cat =~ /wp-comments-post/){
print;
}
}
C^d
テーマディレクトリにあるファイル名からphpが付くものだけを抽出して配列に格納し、foreachで回しながら`cat`でファイルの中身を吐き出させて$catに格納、wp-comments-postにヒットしたファイル名だけを出力させます。簡単ですね。
これを実行すると、なんとcomments.phpだけがヒットします。あれ?
そういうことなら、この方法が一番お手軽ですね。これにしましょう。かなりベタなやり方ではありますが。
wp-comments-post.phpをリネームするだけでは、action先がnot foundになってコメントポストが出来ません。ですから、まずはそこを書き換えます。
Dashboardから[Appearance]→[Editor]→[Comments.php]で開き、下にスクロールして真ん中付近にありますね。そこのwp-comments.post.phpを、何か適当なファイル名に変更します。hana-mogera.phpでもqawsedrftgyhujiko.phpでも何でも構いません。
次に、ローカルでwp-comments-post.phpを同じ名前にリネームしてからftpで送ります。これでコメントポストを試したところ、問題なく投稿出来ました。
ただ、これで終了という訳ではありません。上に書いた通り、場合によってはスパマーとの「いたちごっこ」が起こり得るからです。
あと、これは私が使用しているBible Scolarというテーマの場合に限った話かも知れません。他のテーマの場合は分かりませんので、上記のperlスクリプトなり他の方法なりで事前に丁寧に調べておく必要はあるでしょう。
