アーカイブ : 2013年 10月

子テーマでハマった話

テーマをだいぶいじりまわした後、Wordpressでは子テーマなるものが作れるということを知った^^;

テーマのアップデートがあった際、更新してしまうと今までのカスタマイズが全て飛んでしまう。
事前に子テーマを作成し、それにカスタマイズするようにすれば、更新の際でもカスタマイズが飛ばずに済む。
これはWordpressを使うにあたっての常識だったらしい^^;

先人の情報をもとに、/wp/wp-content/themes 内に、空のフォルダーを作成。
”pianoblack”をベースとしているので、”pianoblack_child”とした。
そこに以下の”sytele.css”を作成しアップ。

/*
Theme Name: PianoBlack_Child
Template: pianoblack
*/

以下を追加すれば、オリジナルのスタイルシートを継承できるらしが、だいぶいじった後だったので、
全てコピペした。

@import url('../pianoback/style.css');

これをpianoblack_childフォルダーにアップ。
これで、テーマ一覧に子テーマのPianoblack_childが表示されるので、有効化すればOKらしい。

有効化をポチッと・・・

ひゃー、エラーです・・・
functions.phpでエラーの様です。

ダッシュボードにもアクセス出来ない・・・
Wordpress初心者の私は汗たらたらです^^;
どうしたものかと調べてみると、Wordpress Codex日本語版に次の記載を発見。

テーマの無効化

FTPを使って有効化されているテーマのフォルダ(wp-content/themes内)名を変更します。変更すると、 WordPress は WordPress Twenty Eleven テーマ にテーマを戻します。ログインできたら、別のテーマに変更してください。

FTPクライアントで有効化していたテーマの名前を一時的に変更すると、無事ダッシュボードにアクセスできました。
この間、約30分^^;

functions.phpのエラー箇所を見てみると、次の記述がありました。

// テーマオプション
require_once ( get_stylesheet_directory() . '/admin/theme-options.php' );

// 更新通知
if (strtoupper(get_locale()) == 'JA') {
 require_once ( get_stylesheet_directory() . '/admin/update_notifier_jp.php' );
} else {
 require_once ( get_stylesheet_directory() . '/admin/update_notifier.php' );

テーマのオプションと更新チェックを行っているようですが、
子テーマのadminフォルダーにも”theme-options.php”と”update_notifier_jp.php”が無いとダメなようです。
アップしてやると、無事子テーマを有効化することが出来ました。
このままでは背景が真っ白けだったので、子テーマフォルダーにもimgフォルダーを転送。
テーマオプション、ウェジットがリセットされていたので、再設定。
無事、子テーマ化に成功です^^

さて、安心していると、子テーマの方に更新通知来ました。
子テーマのスタイルシートにバージョンの記載が無いので、アップデートできるよとお知らせが来てしまったのです。
ここで更新をポチッとすると、子テーマをバージョンアップしてしまい、カスタマイズが飛んでしまいます。

そこで、親のfunctuons.phpのバージョンチェックをしている部分をカスタマイズ。
is_child_theme()で子テーマか判定し、子テーマの方にはバージョンチェックしないようにしました。

if (is_child_theme() == false) {
	if (strtoupper(get_locale()) == 'JA') {
 		require_once ( get_stylesheet_directory() . '/admin/update_notifier_jp.php' );
	} else {
 		require_once ( get_stylesheet_directory() . '/admin/update_notifier.php' );
	};
};

ついでにテーマオプションのチェックを親テーマの方を見るようになっているので、子テーマの方を見に行くように変更。
get_template_directory関数をget_stylesheet_directory関数に変えました。

require_once ( get_template_directory() . '/admin/theme-options.php' );

  ↓

require_once ( get_stylesheet_directory() . '/admin/theme-options.php' );

更新通知が消え、めでたしめでたし。

コメントスパム対策

スパム対策としてAkismetを導入しているが、
二重対策のため、プラグイン「Captcha」を導入。

WP Slimbox2 Plugin

画像表示が標準では味気ないので、「WP Slimbox2 Plugin」を導入。

設定はデフォルト。

WP-Slimbox2 表示サンプル

コメントの必須項目を変更

コメントの投稿で、メールアドレスを必須にするとハードルが上がるので、
「設定->ディスカッション->他のコメント設定」 で「名前とメールアドレスの入力を必須にする 」をOFF。

但し、名前は必ず入れて欲しいので、functions.phpに以下を追加。

/*コメントフォームで名前のみを必須入力にする */
function preprocess_comment_author( $commentdata ) {
    if ("" === trim( $commentdata['comment_author'] ))
    wp_die('名前を入力して下さい。');
    return $commentdata;
}
add_filter('preprocess_comment', 'preprocess_comment_author', 2, 1);

参考記事:「work.log」様-「WordPressのコメントフォームで名前のみを必須にする

My Category Order

カテゴリが少々汚かったので整理。
Wordpressではカテゴリーの階層化ができるのは便利だが、
日本語でカテゴリ名を設定していると、思うような並びにならない。

My Category Order」を導入し、
並び替えを実施した。

参考記事

FCからWordPressへの移行

詳細割愛

参考記事

使用ツール

感謝!

テーマ

テーマをmono-lab様「Pianoblack」をチョイス。

サーバ契約

BLOGをFC2からレンタルサーバに移行しようと、ロリポップと契約。
独自ドメインもムームードメインで取得。