2013年7月2日 02:06

[WordPress] WordPressカスタマイズのメモ(2)

Posted by


先日の記事に引き続き、WordPressの設定を少し弄ってみました。
今回は以下の2項目です。

  1. コメントスパム対策
  2. カスタマイズ用テーマ作成

コメントスパム対策

どこから嗅ぎつけてこられたのか定かではありませんが、開始して間もない当Blogもコメントスパムの洗礼を受けることになりました。
管理画面で各コメントを「承認」しないとページには表示されないため、そこまで大きな被害があったわけではないのですが、そんな無意味なことで手間を取らされるのはハッキリ言って面白くありません。
スパム防止の手段は幾つかありますが、WordPressのプラグインで何か便利なものがないか探してみましょう。

新規追加のページで検索してみたところ、予想通り多くのプラグインが見つかりました。
今回はBestWebSoftが配布しているCaptchaプラグインを導入してみました。

Captchaプラグイン導入後のコメント欄

Captchaプラグイン導入後のコメント欄


画像のハイライト部分を見ていただければ分かりますが、コメント投稿フォームに簡単な計算式が表示されるようになります。
正しい答えが入力されていなければ、スパム投稿と判断されるようです。
ここでは漢数字の足し算が表示されていますが、設定によって算用数字のみにしたり、計算式の種類(と言っても減算&乗算くらいですが)を変更することも出来ます。

巷でよく見かける画像の文字を入力してもらうタイプに比べるとSPAM排除の精度は少し下がってしまいそうですが、とりあえずの対策としてはこれで十分かなと思います。
これでどうなるか、しばらく様子を見ることにします。

カスタマイズ用テーマ作成

前回、記事の末尾に表示されているメタデータ部分を変更しようと、WordPressのテーマファイルを修正しました。
それの続きとなります。

現在、当Blogで使用しているテーマファイルは「TwentyTwelve」で、これはWordPressの2012年デフォルトです。
公式で配布されているテーマファイル(デフォルトテーマを含む)は、WordPressに備わっているアップデート機能の対象となっているらしく、せっかくカスタマイズしてもWordPress本体の更新により元の状態に戻されてしまいました。
その対策として、TwentyTwelveのテーマファイル(ディレクトリ)を複製した、カスタマイズ専用のデーマを用意することにします。
参考にしたのは以下のサイトです。

デフォルトテーマの複製

ではまず、FTPクライアントなりターミナルなりを使用して、(WordPressインストールディレクトリ)/wp-content/themes へアクセスします。
そこで元になるテーマファイルをコピーします。

$ cd ~/(インストールディレクトリ)/wp-content/themes
$ cp -a twentytwelve odproject_mytwentytwelve

新規テーマファイルの名前は分かりやすいものが良いでしょう。
ここでは TwentyTwelveの改造版という意味を込めて、My TwentyTwelve(ファイル名としては odproject_mytwentytwelve)という名前にしてみました。
そして各テーマディレクトリの直下にある style.css に、このテーマファイル自体のメタ情報(名称や説明など)が記述されていますので、これを適当に書き換えます。

Theme Name: My TwentyTwelve
Theme URI: 
Author: ODプロジェクト
Author URI: http://odproject.net/
Description: 公式テーマTwentyTwelveのカスタマイズ用
Version: 

一旦ここでWordPressの管理画面を覗いてみましょう。
外観 – テーマ のページに、無事「My TwentyTwelve」が表示されています。ここまではどうにか成功のようです。

TwentyTwelveの複製

TwentyTwelveの複製

言語ファイルの複製

次に言語ファイルを用意します。こちらはテーマファイルとは異なり wp-content/languages/themes に置かれています。
先程と同様に、これもコピーしてしまいましょう。

$ cd ~/(インストールディレクトリ)/wp-content/languages/themes
$ cp -a twentytwelve-ja.po odproject_mytwentytwelve-ja.po
$ cp -a twentytwelve-ja.mo odproject_mytwentytwelve-ja.mo

*.poファイルと*.moファイルが言語ファイルです。
これらの説明、および編集方法については前回の記事を参照してください。

参照する言語ファイルの指定

テーマファイルと言語ファイルの複製が完了しました。ですがこれだけでは正しくカスタマイズ出来ません。
今のままでは元テーマの言語ファイル(twentytwelve-ja.mo)を読み込んでしまいますので、この参照先を修正しましょう。

WordPressでは多言語対応の手段として、__()_e() 等の関数を用意しています。
これら翻訳関数に引数として英語の文章を渡すと、それに対応した別言語の文章が返り、無ければ英文のまま返ってくるという仕組みです。
リファレンスやテーマファイルの記述を読むと、第2引数としてテーマファイル名(正確にはテキストドメインと呼ぶようです)を与えることで、テーマに応じて参照する言語ファイルを設定できることが分かります。

*.phpファイルのあちらこちらに以下のような記述がありますので、これを片っ端から置換します。
自力でやる場合、数が多いので面倒かもしれません。ターミナルからsedコマンドを叩いた方が楽だと思います。

<?php
	_e( 'English Message', 'twentytwelve' );
?>
<?php
	_e( 'English Message', 'odproject_mytwentytwelve' );
?>

また、function.phpには、テキストドメインを指定しているらしき箇所がありますので、これも修正してしまいましょう。

/*
 * Makes Twenty Twelve available for translation.
 *
 * Translations can be added to the /languages/ directory.
 * If you're building a theme based on Twenty Twelve, use a find and replace
 * to change 'odproject_mytwentytwelve' to the name of your theme in all the template files.
 */
 load_theme_textdomain( 'odproject_mytwentytwelve', get_template_directory() . '/languages' );

おそらく、これで odproject_mytwentytwelve-ja.mo を読んでくれるようになったはずです。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


一 + = 五

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>