WordPressでページを分割する

no comments

WordPressでページを分割するには「WP-PageNavi」というプラグインが大変便利で非常に有名なんですが、デフォルトのCSSが個人的にイケてないので書き換えていました。
ただ、プラグインがバージョンアップする度に書き直すのが面倒[*1] なので、ちょっとググってみたら別にプラグイン使わなくても出来るんですね…という話です。

まぁたいした話じゃないんですけど、これの気に入ったところは「前ページへ」とか「次ページへ」のリンクが一番外側に来ているという点ですね。
これは感覚的な問題で、どうでもいいっちゃあどうでもいい。
でも個人的には非常に重要なこと何じゃないかと思うんです。

というわけでちょっとだけ弄ったのでメモ。
以下のコードを表示したいところに挿入します。

<div class="pagenavi">
	<?php global $wp_rewrite;
		$paginate_base = get_pagenum_link(1);
		if (strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()) {
			$paginate_format = '';
			$paginate_base = add_query_arg('paged', '%#%');
		} else {
			$paginate_format = (substr($paginate_base, -1 ,1) == '/' ? '' : '/') .
			user_trailingslashit('page/%#%/', 'paged');;
			$paginate_base .= '%_%';
		}
		echo paginate_links( array(
			'base' => $paginate_base,
			'format' => $paginate_format,
			'total' => $wp_query->max_num_pages,
			'mid_size' => 5,
			'current' => ($paged ? $paged : 1),
	)); ?>
<!-- pagenavi --></div>

上のエントリーではページナビ全体のクラス名が「tablenav」となっていますが、私は上のように「pagenavi」に書き換え。
この辺は別に文章化するまでもないくらいどうでもいいことですけど一応念のため。
次にCSSで見た目を変更します。

span.current {
	font-weight: bold;
	padding: 2px 6px;
	border: 1px solid #d9d9d9;
	background: url('image/grey-gloss.png') repeat-x center center;
}

a.page-numbers {
	padding: 2px 6px;
	border: 1px solid #d9d9d9;
	background: url('image/white-gloss.png') repeat-x center center;
}

a.page-numbers:link, a.page-numbers:visited {
	color: #666666;
	text-decoration: none;
}

a.page-numbers:hover, a.page-numbers:active {
	color: #000000;
	text-decoration: underline;
	background-color: #d9d9d9;
}

できあがり。

ページ分割

  1. バックアップは?とか言わない方向でw []

WP-Slimbox2

2 comments

久しぶりにWordPressのプラグインネタです。
今はエントリー中の写真をクリックするとブワワワ~っとなって拡大表示されるlightboxというのを使っていますが、投稿の際に毎回aタグに「rel=”lightbox”」を追加しないといけないのでそれが結構面倒くさい。
プラグイン使って自動で付与するとかできるけど、根本的にlightbox.jsとjQueryが同時に動いてくれないっていう問題があったので何となく毎回手動で付与するっていう作業をやってきたわけなんですが…やはり面倒くさい。

そこでjQueryで動くlightboxならいけるんじゃね?ということで実験する意味でもこのエントリーを書いています。
では早速、先日の西日本菊花大会より写真を数枚。

西日本菊花大会001

ドラえもん、ドラミちゃん、機関車トーマス、アンパンマン、メロンパンナちゃん、バイキンマン、キティちゃん…う~ん、それ以外は分かりません。
多分仮面ライダーとか何とかレンジャーみたいな戦隊もののキャラクターなんでしょうけど…さっぱり。
どうでもいいですけど、ドラえもんのお面は被るとひげの辺りから外を見るようになるんですね。

西日本菊花大会002

西日本菊花大会003

西日本菊花大会004

プレビューで確認しましたが、このプラグイン結構いいですね。
ダウンロードはコチラからどうぞ。

WordPress2.8 リリース

no comments

新しいWordPress2.8がリリースされました。
WordPress | 日本語よりダウンロードできます。
管理画面から自動アップグレードもできます。

ほとんどの方がバックアップしてからバージョンアップするんでしょうけど私はいつものように何も考えずにポチッとやっちゃいました。
まぁ特に大きな問題はなかったんですが、言語ファイルを弄っていたのでそれだけはやり直しさせられましたw

日本語公式サイトを見てみると、今回のバージョンアップは全体のスピードアップとかウィジェットの使い勝手向上とか色々あるみたいですけど、そもそもそんなに使いこなしてるわけではないのでちょっと良くなったかなぁぐらいですね。

特に何もないならわざわざエントリーすんなって感じですけど、こういうネタでもないと最近WordPress関連のこと全く書いてないんですものw

ブログが潰れかけた!

2 comments

今日は半日振り回されました…orz
ここ最近新規投稿して公開すると画面が真っ白になるという訳の分からない現象が起きていました。
ブックマークからブログを表示すると問題なく新規投稿分も表示されてたのでまぁいいかぐらいに考えていましたが、やっぱり気持ち悪いってことで何とか復旧させようと試みました。

まずはサーバのwp-contentフォルダを丸ごとローカルへバックアップ。
続いてphpmyadminでMySQLをバックアップ。
そしてWordPressそのものを一旦サーバから全削除し再インストール。

事前によく考えてなかったんですが、データベースの復元ってもっと簡単だと考えてました。
今回はコレが原因だったのかな。
まぁ何回チャレンジしても白紙。
そのうち管理画面すら白紙になりました。
せめて管理画面からエクスポートしとくんだったと気付いた時にはもう遅かった。

残るはMySQLのデータを復元することだけでした。
これが何故かエラーの連続…orz
同じデータベース名がありますとかアクセス権限がないとか色々と文句付けられて復元を拒否られました。
ググって色んな方法を試してみましたがとにかくダメ。

まぁ結局MySQLをバックアップしたファイルの中から前のサーバとかユーザーの名前が書かれている部分を削除して復元してみたらうまくいきましたw
危ない危ない…
一時は新規でやり直す覚悟もしていましたので助かりました。
バックアップの重要性を再認識した半日でしたとさ。

テーマを刷新しました

12 comments

懲りもせずまたテーマを変更しました。
細かいところではまだまだ修正しないといけないところもあるんですがとりあえず公開します。

今回の目玉は今流行りのjQueryを導入したことです。
サイドバーのタブメニューとlightboxをjQueryで実現しています。
まぁ細かいことは別エントリーでまとめてみます。

毎回言ってますが、改めてよろしくです。

del.icio.us for WordPress

no comments

前回に引き続き、WordPressのプラグインをご紹介。
今回は「del.icio.us for WordPress」です。
こちらもタイトルからモロ分かりですが、deliciousにブックマークした記事を表示させるプラグインです。
どうでもいいですけどdeliciousって以前のdel.icio.usから改名してたんですね。
確かに変な位置に.(ドット)が付いてるから検索しにくかったですよね。
ただでさえ日本人にはdeliciousっていう綴りが難しいのにそれに加えてドットの位置ってどこだったっけ?的なねw

まぁそんなことはいいとして、使い方です。

1. 作者のサイトから本体をダウンロード

ページの真ん中ほどにアイコン付きでzipファイルへのリンクが貼られています。

2. /wp-content/plugin/ディレクトリへdelicious.phpをアップロード

やはり定番ソフトはFFFTPなんでしょうか。

3. 管理画面よりアクティベート

これで準備完了です。

あとは表示させたいところに、

<?php delicious_bookmarks('username'); ?>

と挿入します。
usernameのところは自分のIDに置き換えてください。
他にもオプションで色々と設定できますので作者のサイト(英語)を見て自力で…(ry

ちなみにうちの場合はサイドバーに

<?php delicious_bookmarks('manchie', 10, true, false, false, '', false, false, false, false); ?>

と挿入しています。
あとはCSSでゴニョ…(ry

del.icio.us for WordPress

こんな感じになりました。

Get Recent Comments

1 comment

新しくプラグインを入れたのでご紹介。
今回は「Get Recent Comments」です。
タイトルからも分るように最近のコメントを表示するプラグインです。
以前にも似たようなプラグインを入れてみましたが色々と試してみようということで。

1. 公式サイトから本体をダウンロード

「Download」をポチッとな。

2. /wp-content/plugins/ディレクトリへget-recent-comments.phpをアップロード

FTPソフトなどを利用してサクッとアップ。

3. WordPress管理画面の「プラグイン」よりGet Recent Commentsを有効化

全く簡単ですねw

ここまで完了するとWordPress管理画面の「設定」メニューにRecent Commentsが追加されますので、表示の仕方などを設定します。
項目は英語ですが比較的簡単なのでそこは自力で何とかしますw

設定が終わったら表示したいところに

<?php get_recent_comments(); ?>

と挿入しちゃってください。

ちなみにうちの場合、コメントされたエントリーのタイトルと各コメントが表示できるように設定画面の「Group comments by Posting」にチェックを入れ、以下のように設定しました。

<li><a href="%post_link" title="Permanent link to %post_title">%post_title</a>
	<ul>
		<li><a href="%comment_link" title="Comment for %post_title">%comment_author on %comment_date at %comment_time</a></li>
	</ul>
</li>

そしてサイドバーに<ul>~</ul>タグで囲みつつ、

<ul id="recent-comments-list">
	<?php get_recent_comments(); ?>
</ul>

という感じで挿入しました。
あとはCSSの方でゴニョゴニョやって最終的には以下のような感じになりました。

Get Recent Comments

その他にもブログの管理者は表示しないとか色々と設定できるようなので興味のある方は是非。

アーカイブページをタイトルリストに

no comments

ブログには月別、カテゴリー別、タグ別など様々なアーカイブページがあり、訪問者は過去のエントリーを月別、カテゴリー別、タグ別に見ることができます。
WordPressでは月別アーカイブページをdate.php、カテゴリーアーカイブページをcategory.php、タグアーカイブページをtag.phpという名前でそれぞれ独自にテンプレートを作成することで各ページに表示される内容を自由にカスタマイズできます。[*1]

ただし一つ問題があるんですが、各アーカイブページに表示されるエントリー数は、管理メニューの「設定」→「表示設定」内にある「1 ページに表示する投稿数」に指定した数だけしか載らないんです。
これではせっかくアーカイブページ用に作成した独自テンプレートが全く活かせませんね。

そこでプラグインの登場なんです。

上記のエントリーで分かりやすく解説されていますが、Custom posts per pageというプラグインを導入して、各アーカイブページに表示されるエントリー数を好きなように変更します。

具体的には、perpage.phpの11行目あたりにある以下の部分について

$posts_per['home']      = 4;
$posts_per['day']       = 10;
$posts_per['month']     = 10;
$posts_per['search']    = 10;
$posts_per['year']      = 999;
$posts_per['author']    = 999;
$posts_per['category']  = 999;

それぞれの数字を表示させたいエントリーの数に変更すればいいだけです。
例えば、home画面に表示されるエントリー数を10にしたい時には、

$posts_per['home']      = 10;

とします。
同様に、検索結果の画面に表示されるエントリー数を20にしたい時には、

$posts_per['search']    = 20;

と書き換えてあげます。
カテゴリーページにはデフォルトで999になっていますが、通常はこれ以上のエントリーを表示するような場面は少ないと思われるため、ここはこのままでいいと思います。
また、ここにはタグアーカイブページ用の設定ができないため、うちのブログでは少しコレに手を加えさせていただきました。
まずは先ほどの

$posts_per['home']      = 4;
$posts_per['day']       = 10;
$posts_per['month']     = 10;
$posts_per['search']    = 10;
$posts_per['year']      = 999;
$posts_per['author']    = 999;
$posts_per['category']  = 999;

の一番下に

$posts_per['tag']  = 999;

と書き加えます。
そして次に

	$query = new WP_Query();
	$query->parse_query($query_string);

	if ($query->is_home) {
		$num = $posts_per['home'];

	} elseif ($query->is_day) {
		$num = $posts_per['day'].'&order=ASC';

	} elseif ($query->is_month) {
		$num = $posts_per['month'].'&order=ASC';

	} elseif ($query->is_year) {
		$num = $posts_per['year'].'&order=ASC';

	} elseif ($query->is_author) {
		$num = $posts_per['author'];

	} elseif ($query->is_category) {
		$num = $posts_per['category'];

	} elseif ($query->is_search) {
		$num = $posts_per['search'];
	}

この部分の一番下に

	} elseif ($query->is_search) {
		$num = $posts_per['tag'];
	}

と書き加えます。
これでtag.phpでもdate.phpやcategory.phpと同様に表示されるエントリー数を制御できるようになりました。
ちなみに、古いエントリーを一番下に表示し、上に行くほど新しいエントリーにしたい場合には該当ページの”ASC”を”DESC”に書き換えるといいですよ。
例えば、

	} elseif ($query->is_year) {
		$num = $posts_per['year'].'&order=ASC';

これを

	} elseif ($query->is_year) {
		$num = $posts_per['year'].'&order=DESC';

こういう風に変更します。
まぁデフォルトで降順のようですから敢えてDESCと書かずに省略してもいいです。

	} elseif ($query->is_year) {
		$num = $posts_per['year'];

私はコレになかなか気付かなくて四苦八苦しました(笑)

あとは先ほどのエントリーにも出てましたように、各アーカイブページに沿ったテンプレートファイルを作成すればOKです。
私の場合は番号リストにしましたが、ulをolに変えただけですのでほとんどそのまま引用させていただきました。

<ol>
<?php if ($posts) : foreach ($posts as $post) : start_wp(); ?>
<li><?php the_time('l, F d, Y') ?> at <?php the_time('h:i a') ?> : <a href="<?php the_permalink() ?>" title="Permanent link to <?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
</ol>

これで以下のようにアーカイブページをリスト表示にすることができました。

custom-posts-per-page

まぁ定義リストとか使って横並びにした方が綺麗っちゃあ綺麗ですね(笑)
それはそれでまた時間のある時にやってみます。

【追記-2008.11.30-】
各テンプレートファイルへの記述ですが、start_wpというのが気になったので調べてみたんですけど、別に

<ol>
<?php if(have_posts()): while(have_posts()): the_post(); ?>
<li><?php the_time('D, M d, Y') ?> at <?php the_time('h:i A') ?> : <a href="<?php the_permalink() ?>" title="Permanent link to <?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; endif; ?>
</ol>

これでも問題なく動作しましたので変更しました。

  1. これらが存在しない場合にはindex.phpが代用されます。 []

ちょっとだけテーマをいじる

no comments

先日の連休より、福岡から奥さんのお母さんと奈良から奥さんのお母さんのお姉さんが大阪に遊びに来ています。
もちろん二人のお目当てはヒカリです。
普段の土日は奥さんがゆっくりしたいので私がヒカリの面倒を見ることもあるんですが、今回はこの二人に任せられます。
そういうわけで久しぶりにたくさん時間が取れたのでWordPressのテーマをちょっといじってみました。

大きく変わったのはコンテンツの横幅です。
メインコンテンツの横幅は、以前は510pxでしたが今回から650pxへと拡げました。
微妙に狭い気がしてたので140pxほど拡大させました。
また、サイドバーも240pxから250pxへと若干拡げました。
それと、ページの下部にあったカテゴリー一覧などのコンテンツは排除して全てサイドバーに移動させました。
これまではサイドバーとページ下部に出力されるリストが丸被りだったのでコレをサイドバーのみに集約しシンプルにしました。

そして、タイトルロゴ、ナビゲーション、サイドバーの見出し、コメント欄の見出しは全てフォントを変更しました。
以前はMyriad Proだったのですが今回よりMarkSansに変更しました。
MarkSansの方が細めでシュッとした印象が出るところが気に入っています。
CSSの画像置換を使ってテキストを画像に変換しています。

その他にも細かいところをチョコチョコいじってますが眠くなってきたのでまた次回(笑)

MobilePressNEO

no comments

携帯電話からの閲覧用にMobilePressというプラグインを入れていましたが、管理画面でアップグレードのお知らせが出ていたので何も考えずにポチッとやっちゃいました。
すると以前はなかった管理画面メニューが出てきましたので「おや?」と思って開いてみると英語で色々と…(ry
MobilePressって確か作者さんは日本人だったような気がしてますます「??」状態。

しばらく放置してましたが、さっき携帯からアクセスしてみると画面が真っ白…orz
これはいかん、ということでググってみたところ…

こんなエントリーを見付けました。

さらにこのエントリーを遡ってみると、

WordPressを携帯から閲覧できるようにするプラグイン「MobilePress」の更新通知が出ていたので、upgrade automaticallyをぽちっと押したら…

管理画面にMobailePressメニューが追加された。
テーマの変更や、タイトルの変更などが管理画面からできるみたいだ。

が…

あれ?なんで英語なんだろう?
作者って日本人じゃなかったっけ?MobilePressプラグインはまだ更新しちゃだめ >> 病的溺愛シンドローム

私と全く同じ現象ですね。
最初のエントリーを見てみると、WordPressの公式プラグインである「MobilePress」と名前が同じだったため管理画面に更新のお知らせが出てたみたいです。
日本人の方が作られたプラグインは新たに「MobilePressNEO」として再配布されていました。

上のエントリーで解説されているように再度プラグインを設置し直したところ、無事に携帯からのアクセスができるようになりました。

WordPress 2.7-beta1

2 comments

現在、数日前にリリースされたWordPress 2.7-beta1を入れてみてます。
本当はローカル環境などで十分検証してから本ブログに導入すべきなんですが…待ちきれずやっちゃいました(笑)
管理画面の変更が大きなものですかね。
これまでページの上部にあったメニューが左サイドに移動しています。

WordPress 2.7-beta1

プラグインの定番だったLighter Admin Drop Menusはもう使えません。
これ入れたままにしてるとサイドバーが表示されなくなって路頭に迷うことになります…私のように(笑)

しかしbeta版のせいなのかところどころまだ日本語化が完璧じゃないですね。
まぁこの辺は正式版リリース時には解消されると思いますが。

SyntaxHighlighter Plus

1 comment

ソースコードをハイライトしてくれるプラグイン「SyntaxHighlighter Plus」を入れてみました。

参考リンク
【WP】ソースコードをシンタックスハイライトする”SyntaxHighlighter Plus” | Matter Programming

以下よりサンプルなんですが、ちゃんと表示されるんでしょうか。

body, div, h1, h2, h3, h4, h5, h6, address, blockquote, p, pre, fieldset, form, ul, ol, li, dl, dt, dd {
	margin: 0;
	padding: 0;
}

address, cite, em, strong {
	font-weight: normal;
	font-style: normal;
}

fieldset, img {
	border: none;
}

h1, h2, h3, h4, h5, h6 {
	font-size: 100%;
	font-weight: normal;
}

ul, ol {
	list-style-type: none;
}

どうなんでしょう。

おかしいですね、うまいこと表示されてません。
WordPress 2.7-beta1には対応していないんでしょうか。
もう少し様子見ですか。

ググったら見つけました。

以上のエントリー通りにやってみたらうまくいきました。

【追記-2009.2.26-】
上の例よりもfooter.phpの</body>直前に

<?php wp_footer(); ?>

と記述した方が良いでしょう。

AddQuicktag

no comments

WordPressのプラグインシリーズ。
今回はAddQuicktagです。

WordPressのデフォルトの状態では、投稿時にボタン一つで挿入できるタグの種類があまりありません。
「b」、「i」、「link」、「b-quote」、「del」、「ins」、「img」、「ul」、「ol」、「li」など約10種類程しか用意されてませんのでそれ以外のタグに関しては手動で入力するしかありません。
そこでこのプラグインの登場です。
ちなみにこのエントリーはAddQuicktagプラグインを導入・設定後に書いていますのでとても快適ですw

1. プラグインをダウンロード。

WP – AddQuicktag (Plugin) – bueltge.de [by:ltge.de]よりAddQuicktagプラグインをダウンロードします。

2. サーバへアップロード。

ダウンロードした「addquicktag.zip」を解凍し、出てきた「addquicktag」フォルダを丸ごと/wp-content/pluginsへアップロードしてください。

3. 管理画面より有効化。

有効化すると管理画面メニューの設定に「Add Quicktags」が追加されますので、そこへ自分の使いたいタグをどんどん登録してください。

まぁひとつのエントリーとして取り上げるほどのものではないですけどテストがてらね(笑)

同日投稿での日付表示

no comments

連続エントリーですが(汗)

WordPressで同じ日に複数の投稿をした場合、最新の日付しか表示されなくて困ってました。
仕方ないから投稿日を一日前にずらしてましたが、やっぱり投稿した日の日付が出てほしいですよね…
というわけでまたまたググってみました。

当然ありましたよ(笑)

上のエントリーの通りです。
日付を表示させるタグは<?php the_date(); ?>なんですが、これを<?php the_time(); ?>に変更すればいいだけです。
簡単ですね(笑)

参考リンク

WP Lightbox 2

no comments

昨日エントリーしたLightbox2なんですが、画像をアップした後に手動で「rel=”lightbox”」を入力するのが面倒だったので自動的に挿入してくれるような都合の良いプラグインってないのかなぁと思ってググってみるとありました。

何でもあるもんなんですね…(笑)

1. プラグインのダウンロード

Lightbox 2.0 for WordPressよりプラグインをダウンロードして「wp-lightbox2.zip」を解凍しておきます。

2. プラグインを有効化

解凍してできた「wp-lightbox2」フォルダを丸ごと/wp-content/pluginsへ放り込みます。
次に管理画面でプラグインを有効化します。
これで終わり。
新規投稿画面を開くと「lightbox2」というボタンが追加されていますのでこれを利用すると自動的にimgタグへ「rel=”lightbox”」が付与される事になります。

WP Lightbox 2 サンプル

当然見た目は変わりませんが、投稿する側にとってはかなり便利になりましたw
このプラグインの中にLightboxを実装するために必要なファイルは全部入っていますので、昨日入れた分は削除して構いません。

参考リンク

captionタグを非表示にする方法

no comments

WordPressで画像を投稿する際にalt属性を加えようと思ったら「Caption」という項目に入力すればいいんですが、そうすると画像にcaptionが入って鬱陶しいんです。
かといって後から手入力するのも面倒なんでどうしたもんかとググってみたら見付けました。

私がやりたかったのはまさしくコレです。
上のエントリーで解説されている通りにやればOKです。

要は今使っているテーマファイルの「functions.php」内に、なければ新規で作成してその中に以下のような記述を書き加えます。

<?php
	define('CAPTIONS_OFF', true);
	add_filter('disable_captions', create_function('','return true;'));
?>

これだけで鬱陶しいcaptionが自動的に挿入される事はなくなります。
凄ぇっすね。

Lightbox 2 導入覚え書き

no comments

テーマを刷新したのでLightbox 2 を導入してみました。
写真を見る時にJavascript読み込んでブワブワーってなるやつ。
これ入れるだけでちょっとシャレた感じになるのがいいですね。
導入は簡単ですが今後のためにも覚え書きです。

1. 必要なファイルをダウンロードする。

Lightbox 2にてDownloadより必要なファイルをダウンロードする。
エントリー時の最新バージョンは2.04です。
ダウンロードした「lightbox2.04.zip」を解凍しておきます。

2. ファイルの編集をする。

デフォルトの状態では画像がうまく表示されませんので以下のファイルを編集します。
編集するのは「lightbox2.04」フォルダ内の「css」→「lightbox.css」と同じく「lightbox2.04」フォルダ内の「js」→「lightbox.js」の2つです。

まずは「lightbox.css」をTeraPadなどのテキストエディタで開きます。
その16行目と17行目にある

#prevLink:hover, #prevLink:visited:hover { background: url(../images/prevlabel.gif) left 15% no-repeat; }
#nextLink:hover, #nextLink:visited:hover { background: url(../images/nextlabel.gif) right 15% no-repeat; }

の青字を以下の赤字のようにフルパスに変更します。

#prevLink:hover, #prevLink:visited:hover { background: url(http://(画像を保存しているフォルダまでのURL)/images/prevlabel.gif) left 15% no-repeat; }
#nextLink:hover, #nextLink:visited:hover { background: url(http://(画像を保存しているフォルダまでのURL)/images/nextlabel.gif) right 15% no-repeat; }

続いて「lightbox.js」ですが、49行目と50行目にある

fileLoadingImage:                'images/loading.gif',
fileBottomNavCloseImage: 'images/closelabel.gif',

の青字を同じく以下の赤字のようにフルパスに変更します。

fileLoadingImage:                'http://(画像を保存しているフォルダまでのURL)/images/loading.gif',
fileBottomNavCloseImage: 'http://(画像を保存しているフォルダまでのURL)/images/closelabel.gif',

両ファイルとも上書き保存しておきます。

3. ファイルをアップロードする。

先ほど解凍した「lightbox2.04」フォルダごとサーバにアップします。
中には必要ない画像とかも入ってますけど面倒臭かったら全部アップしといて問題ないと思います。

4. HTMLファイルを編集する。

次にHTMLファイルの<head>~</head>内に以下のソースを書き加えます。

<script type="text/javascript" src="http://(「js」フォルダまでのURL)/js/prototype.js"></script>
<script type="text/javascript" src="http://(「js」フォルダまでのURL)/js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="http://(「js」フォルダまでのURL)/js/lightbox.js"></script>

以上でLightboxを使うための準備は終了です。

5. 画像アップ時にすること。

エントリーの投稿時にLightboxを使用したい画像リンクに以下のように「rel=”lightbox”」と書き加えます。

<a href="画像のURL" rel="lightbox"><img src="画像のURL" alt="画像の説明など" /></a>

同じ投稿内で複数の画像をグルーピングしたい場合には

<a href="画像のURL" rel="lightbox[sample]"><img src="画像のURL" alt="画像の説明など" /></a>

という風に「lightbox」の後に「[sample]」を書き加えます。
sampleの文字列は半角英数字だったら何でもいいです。
画像の撮影日(ex. 20080927)とか投稿のキーワード(ex. hanabi)とか任意のものを付け加えてください。
これで上のサンプル画像のようにブワブワーとなって画像が画面に表示されるはずです。
簡単なので皆さんも是非やってみてくださいw

新しいテーマを作成

no comments

約1年ぶりに新しいテーマを作成しました。
個別記事ページがまだ完全にはできていませんが、残っているのはCSSの調整だけなのでコメント投稿は普通に機能するはずですからとりあえず先走って公開します。
久しぶりだったのでほとんど初心者状態からの再スタートで大変でした。

メインはデザインの変更とネガティブマージンを採用したレイアウトから固定幅への変更を行いました。
固定幅にしたのには特に理由はありませんが、何となくガチガチにレイアウトしてみたくなっただけです。
追加で修正などあると思いますが、とりあえず改めてよろしくです。

マイナーバージョンアップ

no comments

全体のデザインはほぼ変わっていませんが細かいところをチョコチョコと修正しました。
検索フォームとフッター部分の三段組を新規で追加し、個別ページのコメント表示部分とコメントフォーム回りをきちんと整えました。
また、アイコンを多用してそれぞれが見やすくなるようにしてみました。

CSSには今回初めて「clearfix」を使ってみました。
これまではどちらかというとCSSハックは好きではなかったんですが、CSSでデザインするからにはどうも避けては通れなさそうだということを知りましたので重たい腰を上げてようやく使ってみました。

…すげぇ便利(笑)

モダンブラウザはもちろんバージョン4世代などの古いブラウザにも対応していてfloatを使ったレイアウトを組む場合にはほんと便利ですね。
とりあえず以後のためにもコピペで使えるよう覚え書き。

セレクタ:after {
	visibility: hidden;
	clear: both;
	height: 0;
	display: block;
	content: ".";
}

セレクタ {
	display: inline-block;
}

/* Hides from IE-mac \*/
* html セレクタ { height: 1%; }
セレクタ { display: block; }
/* End hide from IE-mac */

要するにfloatを指定するブロックを包括する親ブロックの最期に「.」というテキストを追加し、そいつにブロックの最後でクリアさせるっていう技らしいです。
擬似要素「:after」に対応していないIEに対しては下の方の記述が解決してくれるみたいです。
細かいことは素人に私には分かりませんので(笑)、決まり文句のようにこれを追加することでレイアウトを組みやすくしました。

また、これは以前から採用しているのですが、ネガティブマージンを使ってサイドバーは固定幅でメイン部分は可変幅にしています。
ブラウザの幅によってコンテンツ部分が広がるように全体の幅を80%と相対指定をしていますが、サイドバーまでが広がるのはかっこ悪い。
そこでネガティブマージンの登場です。

例えば、全体幅は80%と指定し、サイドバーを250pxで固定、残りの幅はメイン部分に当てるというような場合には次のようにします。
まず、HTMLでは、

<div id="wrap">
	<div id="content">
	<div id="main-content">
		メイン部分
	</div>
	</div>

	<div id="sub-content">
		サイドバー部分
	</div>
</div>

とし、CSSでは

#wrap {
	width: 80%;
}

#content {
	margin-right: -280px;
	float: left;
	width: 100%;
}

#main-content {
	margin-right: 280px;
}

#sub-content {
	float: right;
	width: 250px;
}

とします。

詳しい解説は省きますが、上のように記述すると意図したレイアウトになります。
ちなみに「280px」のところはサイドバーの「250px」との差である「30px」分が余白になるということなので、指定したい余白分を「250px」に加えることで適宜変更して下さい。
これに先程のclearfixを追加すれば完成です。

#wrap:after {
	visibility: hidden;
	clear: both;
	height: 0;
	display: block;
	content: ".";
}

#wrap {
	display: inline-block;
}

/* Hides from IE-mac \*/
* html #wrap { height: 1%; }
#wrap { display: block; }
/* End hide from IE-mac */

前回のマイナーチェンジ以前から約二ヶ月ぐらいかかってようやくこの新しいテーマが完成しましたが、まだまだ細かい部分には修正を加えていくつもりです(笑)
改めてよろしくです。

マイナーチェンジ

no comments

しばらく更新してませんでしたが、その間ブログテーマのマイナーチェンジ作業を行っていました。
タイトルロゴとナビゲーションデザインの変更が今回の目玉です(笑)

ナビゲーションに関してはどうしても画像を使ったものにしたかったのですが、WordPressのテンプレート構成では「header.php」が一つしかありませんので、現在いるページの<li>要素にだけ固有のidやclass名を割り振ることが出来ませんでした。
例えば現在いるページが「home」だったとするとそのページのナビゲーションは、

<ul id="navi">
<li class="home" id="current"><a href="http://manchie.com/">home</a></li>
<li class="about"><a href="http://manchie.com/about">about</a></li>
<li class="archives"><a href="http://manchie.com/archives">archives</a></li>
<li class="links"><a href="http://manchie.com/links">links</a></li>
</ul>

となっていることが望ましく、また、現在いるページが「archives」だとするとそのページのナビゲーションは

<ul id="navi">
<li class="home"><a href="http://manchie.com/">home</a></li>
<li class="about"><a href="http://manchie.com/about">about</a></li>
<li class="archives" id="current"><a href="http://manchie.com/archives">archives</a></li>
<li class="links"><a href="http://manchie.com/links">links</a></li>
</ul>

という風に、現在いるページの<li>要素に「id=”current”」というid名を割り振ってCSSで画像を調節したかったんです。
しかしそのやり方が分からなかったので、以前のナビゲーションでは不本意ながらテキストに背景画像を使ったデザインを採用していました。

そんな時、何気なく見ていたVeerle’s blog 2.0 – Webdesign – XHTML CSS | Graphic Designで私の考えているのと同じようなナビゲーションを見付けましたのでそのソースを見てみました。
するとナビゲーション部分のソースはどのページでも同じなんですが、現在いるページには他とは違う画像を使ってフォーカスされていましたので、どこかに違ったCSSを指定できるような仕掛けがあるはずでした。
そこでCSSを覗いてみると、見付けました。

すごく勉強になったのですが、各ページの<body>要素にそれぞれ別のidが指定されていたんです。
つまり、「home」のページでは「<body id="home">」となっており、「archives」のページでは「<body id="archives">」という感じです。
ページ全体にidを割り振って、ページごとに違ったスタイルを適用するという方法には目から鱗でした。

早速うちのブログでも同じようにやってみようと思いましたが、今いるページがどのページなのかを判別できないとこの方法は使えません。
そこで、WordPressのテンプレートタグである「is_page()」を思い出し、「header.php」にそのコードを書いてみました。

<?php if (is_home() ) { ?>
<body id="home">
<?php } else if (is_page('about') ) { ?>
<body id="about">
<?php } else if (is_page('archives') ) { ?>
<body id="archives">
<?php } else if (is_page('links') ) { ?>
<body id="links">
<?php } else if (is_single() ) { ?>
<body id="archives">
<?php } ?>

phpと組み合わせて「もし現在のページがhomeであれば<body>要素にid=”home”を、もしhomeではなくaboutであれば<body>要素にid=”about”を割り振る」という風に現在のページを判別し適正なidを割り振るというソースです。

そして次にCSSに

body#home ul#navi li.home a {
	width: 79px;
	background: url('images/bg-navi.png') no-repeat 0 -41px;
}

body#about ul#navi li.about a {
	width: 79px;
	background: url('images/bg-navi.png') no-repeat -84px -41px;
}

body#archives ul#navi li.archives a {
	width: 96px;
	background: url('images/bg-navi.png') no-repeat -168px -41px;
}

body#links ul#navi li.links a {
	width: 73px;
	background: url('images/bg-navi.png') no-repeat -269px -41px;
}

というソースを記述し、ページごとに違ったスタイルを適用できるように設定しました。
これで私の思い通りのナビゲーションが実現できました。
この方法は他にも色々な使い方が出来ると思います。

WordPress2.3.1とその他諸々

no comments

WordPressの2.3.1がリリースされていましたので早速アップデートしました。
バージョン2.3から管理画面にアップデートのお知らせが出るようになったのですごく便利です。
とりあえず今回は丸ごと上書きでよさげですけど、責任は取れませんから各自で確認して下さいね。

そんなことより、最近うちのPCというか何というか…色々と問題ありで困ってます。
iTunesからiPod nanoに曲を転送していると「必要なフォルダが見つかりません。」とか何とか言ってエラーが出ます。
ネットで色々と調べてみたけど今のところ回復してません(泣)
3,000曲分のデータをバックアップし、iTunesのアンインストール&再インストールしてみたけど変化なし。
いきなりこんなことになったので原因が分からず右往左往してます(泣笑)

そして、これはちょっと前からなんですけど、FTPソフトがちょいちょい繋がらなくなります。
ちょっと前までは全く問題なく接続できていたのに、何かの弾みで(?)不通になってしまいます。
恐らくネットワーク絡みの何かだと思うんですけど、[*1] 一旦全ての電源を切って再起動させるとしばらくよくなります。
とりあえず今のところは放置です(笑)

もう一つ。
PC本体の光学メディアドライブなんですが、OPENボタンを押しても何かに引っ掛かったようになってなかなかすんなり開いてくれません。
何回かボタンを押してあげると開くんですが、これって地味にストレス溜まります。

さて、話はガラッと変わるんですが、今日はカルフール箕面勝山梶のお笑いライブがありましたので奥さんと一緒に見に行きました。
入場無料でしたのでかなりのお客さんが集まっていました。
もちろんムーディ勝山の名曲も生で聞けて面白かったんですが、それ以上に相方の梶さんの突っ込みが可笑しかったです。
ムーディの右から左の歌自体は面白くないというか完全に飽きてしまっていたんですが、そこに突っ込みが入ってしかも歌にもアレンジが加わってテレビで見ていたものとは少し違っていたのでメッチャ笑ってしまいました。
さすがにムーディも少しは考えているんですね(笑)

  1. 自宅の環境をワイヤレスにした辺りから調子がおかしいんです。 []

WP-Footnotes

3 comments

Music ManiacsのtatuyaさんからのコメントでWordPressのプラグインについて質問を受けましたのでエントリーします。
ブログの本文中に「*(アスタリスク)」で注釈を付けているところがありますが、これは「WP-Footnotes」というプラグインを使って実装しています。
導入方法は簡単です。

  1. 作者のサイトよりプラグインをダウンロード。
  2. 解凍して出てきた「wp-footnotes」フォルダを「/wp-content/plugins」ディレクトリへアップロード。
  3. 管理画面よりプラグインを有効化します。

これで注釈の付いた文章を書くことができます。
使い方も簡単で、注釈を付けたい文章の後ろに[*1] 以下のように記述します。

なんたらかんたらですね。 ((ここに注釈文を記述します。)) 

上の文章では全て全角で書いていますが、実際には全て半角で記述します。
具体的には、

「文章」+半角スペース+半角かっこ+半角かっこ+注釈文+半角かっこ閉じる+半角かっこ閉じる+半角スペース

となります。
いまひとつ伝えづらいですが、実際にプラグインを導入してみれば本当に簡単ですので興味がある方はやってみて下さい。
細かく設定も出来ますし。[*2]
本当の意味で注釈を載せるのはもちろん、本文とはあまり関係のない独り言などをちょっと書き込むのにも便利です。[*3]

  1. もちろんこのように文章の途中でも構いません。 []
  2. アスタリスク以外の記号にしたり英数字のリンクにしたりと色々できますよ []
  3. 本来の使い方ではないですが…(←こんな風にね) []

Commented entry list

no comments

昨日からサイドバーに「Recent Comments(最近のコメント)」を表示しようと色々とやってみました。
WordPressではプラグインを使わないとこれが表示できません。
色々と探しましたが、最終的に採用したプラグインはHirobee’s Trail [Memorandum]様のCommented entry listです。
タイトルでは1.1となっていますが現在の最新版は1.2のようです。
設置自体は特に問題なくできたんですが、どういうスタイルにするかで色々と弄ってみました。

その前に一応設置方法をメモ。

  1. 作者のサイトよりプラグインをダウンロード。
  2. 解凍して「commented-entry-list_1.2」フォルダごと「/wp-content/plugins/」ディレクトリへアップロード。
  3. 管理画面よりプラグインを有効化。

以上です。
プラグインの有効化が終わったら最近のコメント一覧を表示したいところに、

<?php get_recently_commented(); ?>

を挿入して下さい。
これで一応最近のコメント一覧が表示されるはずです。
詳細は作者のサイトやプラグインに同封されている「ReadMe.txt」を参照して下さい。

さて、サイドバーの各リストは<ul>~<ul>を使いCSSで見た目を変更していましたが、このプラグインをデフォルトで使う場合出力されるソースが入れ子になってしまうので表示が崩れてしまいました。
そこで、プラグインに同封されている「commented-entry-list.php」に少しだけ手を加えさせていただき、<ul><li>にclass名を割り振ってそれぞれを細かくCSSで設定してみました。

変更したのは29行目から44行目辺りまでの以下の部分です。

		$permalink = get_permalink($comment->ID)."#commentlist";
		$output .= "<li>";
		$output .= "<a href=\"$permalink\">$post_title</a>\n";
		$output .= "\t<ul>\n";
		$first_comment = FALSE;
	}
$comment_date = $comment->comment_date;
$commentid = get_permalink($comment->ID)."#comment-".$comment->comment_ID;
if ( mysql2date('Y m d', $comment_date) == gmdate('Y m d', current_time(timestamp)) ) { # Today's comment
	$comment_date = mysql2date('H:i', $comment_date);
} else {
	$comment_date = mysql2date('m/d', $comment_date);
}
	$output .= "\t\t<li><span class=\"comment_date\"><a href=\"$commentid\" title=\"\">$comment_date</a> </span>".
	"<span class=\"comment_author\">".tkzy_get_comment_author_link($comment,20)."</span></li>\n";
}

少しずつ色んなところに手を加えているんですが、大きく変更したというか追加した部分は、まず30行目の

$output .= "<li>";

に「class名=commented-post-title」を以下のように追加。

$output .= "<li class=\"commented-post-title\">";

次に32行目の

$output .= "\t<ul>\n";

に「class名=commented-data」を以下のように追加。

$output .= "\t<ul class=\"commented-data\">\n";

class名を追加したのは以上の2箇所です。

その他、デフォルトでは当日のコメントには時間、過去のコメントには日付がそれぞれ表示されるようになっていましたが、当日のコメントにも日付が表示されるように統一しました。
変更後の最終的なソースを以下に掲載します。

		$permalink = get_permalink($comment->ID)."";
		$output .= "<li class=\"commented-post-title\">";
		$output .= "<a href=\"$permalink\">$post_title</a>\n";
		$output .= "\t<ul class=\"commented-data\">\n";
		$first_comment = FALSE;
	}
$comment_date = $comment->comment_date;
$commentid = get_permalink($comment->ID)."#comment-".$comment->comment_ID;
if ( mysql2date('Y m d', $comment_date) == gmdate('Y m d', current_time(timestamp)) ) { # Today's comment
	$comment_date = mysql2date('m-d', $comment_date);
} else {
	$comment_date = mysql2date('m-d', $comment_date);
}
	$output .= "\t\t<li><span class=\"comment-date\"><a href=\"$commentid\">$comment_date</a></span>".
	"<span class=\"comment-author\">".tkzy_get_comment_author_link($comment,20)."</span></li>\n";
}

これでカスタマイズのための基礎が整いましたので次にHTMLとCSSですね。
まずHTMLですが、うちのブログではサイドバーの表示したいところに以下のように挿入しました。

<h3>Recent Comments</h3>
<ul class="recent-comments-list">
<?php get_recently_commented(10); ?>
</ul>

そうすると出力されるソースは例えば以下のようになります。

<h3>Recent Comments</h3>
<ul class="recent-comments-list">
	<li class="commented-post-title"><a href="http://manchie.com/7">伝場兄モデル来たる!</a>
		<ul class="commented-data">
			<li><span class="comment-date"><a href="http://manchie.com/7#comment-3">10-05</a></span><span class="comment-author"><a href="http://manchie.com/">リョウ</a></span></li>
			<li><span class="comment-date"><a href="http://manchie.com/7#comment-2">10-05</a></span><span class="comment-author"><a href="http://blog.goo.ne.jp/thunder-birder">サンダー</a></span></li>
		</ul>
	</li>
	<li class="commented-post-title"><a href="http://manchie.com/1">新ドメイン取得</a>
		<ul class="commented-data">
			<li><span class="comment-date"><a href="http://manchie.com/1#comment-1">09-22</a></span><span class="comment-author"><a href="http://manchie.com/">リョウ</a></span></li>
		</ul>
	</li>
</ul>

入れ子状態になっているのが分かると思います。
次にCSSで見た目を変更します。

ul.recent-comments-list {
	border-top: 1px dashed #a3a3a3;
}

ul.recent-comments-list li.commented-post-title {
	border-bottom: 1px dashed #a3a3a3;
}

ul.recent-comments-list li.commented-post-title > a {
	padding: 10px 0 10px 25px;
	background: url('images/arrow.png') no-repeat 10px center;
	display: block;
}

ul.recent-comments-list li.commented-post-title > a:link,
ul.recent-comments-list li.commented-post-title > a:visited {
	color: #666666;
}

ul.recent-comments-list li.commented-post-title > a:hover,
ul.recent-comments-list li.commented-post-title > a:active {
	color: #333333;
	text-decoration: none;
	background: #f6f3ec url('images/arrow-hover.png') no-repeat 10px center;
}

ul.commented-data > li {
	padding: 10px 0 10px 45px;
	border-top: 1px dashed #a3a3a3;
	background: url('images/arrow.png') no-repeat 30px center;
	display: block;
}

ul.commented-data > li:hover {
	background: #f6f3ec url('images/arrow-hover.png') no-repeat 30px center;
}

ul.commented-data > li a:link,
ul.commented-data > li a:visited {
	color: #666666;
}

ul.commented-data > li a:hover,
ul.commented-data > li a:active {
	color: #333333;
	text-decoration: none;
}

span.comment-date {
	margin-right: 1em;
}

ポイントとしては、初めて子供セレクタを使ったことです。
ただこれが一番良いやり方なのかは全く分かりませんので、もう少しベストなやり方があればどなたか教えて下さい(笑)
とにかく、以上のように色々と手を加えさせていただくことで自分の思うような感じに表示することができました。

Lighter Admin Drop Menus

no comments

WordPressのプラグインを紹介するシリーズの第一弾です。
ちなみに先日WordPress2.3を導入しましたので、当然2.3に対応した(2.3でも動く)プラグインの紹介です。

まずは定番中の定番ですが、Lighter Admin Drop Menusをご紹介。
WordPressの管理画面(ダッシュボードとかいうやつ)は、デフォルトでは上部のメニューが使いにくいんです。
サブメニューを開くのにいちいち親メニューを開かないといけません。

そんな小さな使いにくさを解消してくれるのが今回のプラグインです。
導入方法は簡単。

  1. 作者のサイトよりプラグインをダウンロード。
  2. 解凍・展開し「/wp-content/plugins」ディレクトリへアップロード。
  3. ダッシュボードの「プラグイン」メニューより有効化する。

以上です。

これでダッシュボードのメニューをドロップダウン形式で表示してくれ、一発で目的のメニューを選択することができるようになります。

これはどこのブログでも紹介されており、かなりの人が最初に導入するプラグインなのではないかと思います。
てかこれだけ人気がある(と思われる)プラグインならデフォルトで実装すればいいんじゃないかとか一応言ってみる(笑)

画面が真っ白で焦った件

no comments

昨日の夜、ブログのトップページにアクセスしたら突然画面が真っ白になり何も表示されなくなりました。
その少し前までは特に問題なく表示されていたので「しばらくしたら大丈夫やろう」と何の根拠もなく楽観視していましたが、今日の朝になっても依然として何も表示されない…それでも会社に行けば「昼すぎには解決するやろ」ぐらいに軽く考えていました。
しかし、昼過ぎても全く解決せず、仕事も手に付かないほど(←手に付かないのはいつものこと)焦り始めました。

原因として考えたのは、

  1. ドメイン関連の不具合
  2. サーバー関連の不具合
  3. ブラウザ関連の不具合
  4. WordPress関連の不具合
  5. 自分自身のせい(設定をいじってコードを間違えたなど)

新しいドメインを取得したばかりでしたのでまずそこを疑ってみましたが、特に問題なし。
ブラウザに関しては自宅でも会社でも同じように真っ白けでしたので関係なしと判断。
サーバーに関してはチカッパ!に問い合わせをしてみました。[*1]
しかし、「テスト用のファイルをアップしたところ問題なく表示されますので、恐らくWordPressに関わる仕様の問題と思われ、サポート外となります」との事。

サーバーにも特に問題なくサポートセンターの方にはそれはそれは丁寧な返信を戴きましたので、次は4.のWordPress関連を疑うことになります。
てゆうか今から考えればこれを真っ先に疑うべきでしたね。

Googleで「WordPress 画面 真っ白」と検索すると色々と結果がでてきたんですが、ザッと見る限り有効な情報はありませんでした。
そして色々と試した挙句に「WordPress 真っ白」と検索すると…ようやく見付けました。

WP Paginate .2.2 を有効にすると表示が真っ白になる…
雑念ベース » WordPress 2.2 への道

このわずか何行もない一文を頼りにチカッパFTPから該当するプラグインを削除してみたところ無事に表示されるようになりました

本当にありがとうございました。
時期的にもちょうど旧ブログの引っ越しをアナウンスしたばかりでしたので非常に助かりました。
感謝、感激です。

  1. 余談ですが、チカッパのサポート体制は素晴らしいと思います。とにかく問い合わせに対する返信が速い。午前中に問い合わせたら昼すぎには返信が来ました。しかも丁寧。当然のことではあるんでしょうが、ほんとに困っている時にはありがたいです。 []