新着マークを付けてみる

エントリータイトルの横に新着マークを付けてみた。

新着マーク ←これ

参考記事
WordPress Note様-新着記事にNewマークを表示させる

1.以下のコードをfunctions.phpに追加。

/* 新着マーク */
function new_mark(){
	$days=1;
	$today=date_i18n('U');
	$entry=get_the_time('U');
	$diff1=date('U',($today - $entry))/86400;
	if ($days > $diff1) {
		echo "<span class='newmark'><img src='",get_bloginfo('stylesheet_directory') ,"/img/newmark.gif' alt='New Post Mark' /></span>";
	}
}

表示期間は1日に設定したが、変えたい場合は、$days=1の値を変える。

2.次に新着マークを表示したい箇所に、以下を追加。

<?php newmark(); ?>

具体的には、
変更前

<h2 class="post_title"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>

変更後

<h2 class="post_title"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a><?php new_mark(); ?></h2>

3.後はスタイルシートで適当に整形。

.newmark {margin-left:0.5em;}

自分のアバターを設定

自分のコメント時のアバターも変更できるようだ。

参考記事
「WordPressの使い方。個人ブログの作り方 WPナビ」様の「WordPressのアバターを変更する方法「Gravatar」の使い方」内の「GravatarというWEBサービスを利用してアバターを変更する方法」

ゲスト用アバターを変える

WordPressではディスカッション設定でゲスト用のアバターを設定できるが、
デフォルトのミステリーマンでは味気ない。

ミステリーマン

「Webデザインレシピ」様の「WordPressのデフォルトゲストアバター「ミステリーマン」を変更するTips」を参考に、ゲスト用のアバターを追加した。

素材は、「human pictogram 2.0 (無料人物 ピクトグラム素材 2.0)」様の「[No.0336] カメラでパシャリ」をチョイス。
オリジナルのままだと表示された時、何のピクトグラムなのか分かりにくかったので、切り取りリサイズ。
ゲスト用アバター

これをテーマのイメージフォルダーにアップ。

次にfunctions.phpに次のソースコードを追加。
私の場合は子テーマのfunctions.phpに追加してます。

/* ゲスト用アバターの追加 */
function newgravatar ($avatar_defaults) {
    $myavatar = get_bloginfo('stylesheet_directory') . '/img/guest.png';
    $avatar_defaults[$myavatar] = "Guest";
    return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'newgravatar' );

オリジナルソースでは、3行目にtemplate_directoryを使用しているが、
親テーマのイメージフォルダーを見に行ってしまうので、stylesheet_directoryに変更している。

デフォルトアバター設定

できた^^

子テーマでハマった話

テーマをだいぶいじりまわした後、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」をチョイス。