カテゴリー
Web

wp.Vicuna のサイドバーの最新記事に投稿日を表示

WordPress のテーマである wp.Vicuna で、サイドバーの最新記事一覧 (Recent Entries) に投稿日を表示させる。どのテーマでもいけるんですけどね。

sidebar.php の 16 行目辺り。

書き換え前
<?php wp_get_archives('type=postbypost&limit=10'); ?>
書き換え後
<?php
$lastposts = get_posts('numberposts=10&orderby=post_date');

foreach($lastposts as $post) :
    setup_postdata($post);
    ?>
                <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> (<?php the_time('Y-m-d'); ?>)</li>
<?php endforeach; ?>

以上で完了。

the_date ではなく the_time であることに注意。the_date だと1ページに同一投稿日の記事があれば、その最初の記事にのみ表示されて、後に続く記事には表示されない。

投稿日の書式を変えたい場合は the_time('Y-m-d'); の部分を書き換えると良い。その際は、 PHP の日付/時刻の書式が参考になる。あと、うちが使うとしたら <span class="date">(<?php the_time('Y-m-d'); ?>)</span> のように span で括ってやるかな。

参考リソース
カテゴリー
Web

検索ロボット用 XML サイトマップを手軽に作成

サイトマップと言っても閲覧者が見る方のではなく Google とか Yahoo! などの検索ロボット用の XML サイトマップ。それをオンラインで手軽に作れる。

英語のサービスなんですが、Starting URL んとこにサイトの URL を入力して Start ボタンを押し、あとはひたすら待つ。

XML サイトマップと同時に HTML 版のサイトマップや URL リストも作成してくれる。お手軽便利。ただし、HTML 版サイトマップはなぜか文字コードがおかしく指定されているので、もしもそれを使うなら文字コードを UTF-8 に書き換え OR 切り替えしてやる必要がある。閲覧者向けサイトマップはローカルで動くツールを使って作った方がいいかもですね。

で、まあ、出来上がった sitemap.xml はてきとうなとこにアップロードしてやって Google ウェブマスターツールとかで指定してやる。robots.txt にも下記のように記述してやるといいみたい。

robots.txt の記述
Sitemap: http://hoge/sitemap.xml

いやあ、Google ウェブマスターツールはインデックスされてるページとかエラーが出てる箇所とかわかるから便利っすね。

参考リソース
カテゴリー
Web

wp.Vicuna のサイドバーのカテゴリーとアーカイブに記事数を表示

ここの WordPress では wp.Vicuna を使わせてもらってますが、サイドバーのカテゴリーと月毎アーカイブの項目に記事数を表示するように書き換えてみた。

カテゴリー一覧 (Categories)

カテゴリー一覧のとこでは現在非推奨のテンプレートタグが使われているようなのでそれもかねて修正。sidebar.php の 22 行目辺りにある下記の部分。

書き換え前
<?php wp_list_cats ('sort_column=name&optioncount=0&hierarchical=1'); ?>
書き換え後
<?php wp_list_categories('show_count=1&title_li='); ?>

アーカイブ一覧 (Archives)

sidebar.php の 29 行目辺り。

書き換え前
<?php vicuna_archives_link(); ?>
書き換え後
<?php wp_get_archives('type=monthly&show_post_count=1'); ?>

以上で完了。

記事数のとこ、<span class="count">(17)</span> のように span で括ってくれると有り難かったりすんだよなあ。

参考リソース
カテゴリー
Web

フッターの著作権 (Copyright) 表記

いろいろなサイトを見ているとフッターの著作権表記ってほんとに様々。

Copyright © 2009 Hoge. All Rights Reserved. といった感じで書かれてるとこが多いかな。でも SONY のサイトのように Copyright 2009 Sony Corporation といった感じで簡潔なとこもある。長ったらしいのもなんだし、Copyright と期間と所有者の3つに絞り、必要最低限の記述をすることにした。

Copyright ©

まずは Copyright の記述。SONY のサイトでは Copyright と記述されているけど、略式記号の © (&copy; と記述) を使うことにする。閲覧環境によっては © が表示されない場合があるかもしれないのでとりあえず abbr で括って <abbr title="Copyright">&copy;</abbr> とし、© が略語であることを明示してやってお茶を濁す。

期間

続いて、期間については PHP で今現在が何年かを取得してやることで年が変わるごとに書き換えなきゃいけない面倒を削減する。

著作権の所有者

最後の著作権の所有者に関しては個人名とか企業名が妥当なのだろうけどとりあえず今はドメイン名にしておく。

まとめると

サンプルソース
<?php
    // 初公開の年 (要書き換え)
    $since_year = '2002';
    // 現在の日付(年)を取得
    $this_year = date("Y");

    if ($since_year >= $this_year ) {
        $copyright_year = $this_year;
    } else {
        $copyright_year = $since_year. '-'. $this_year;
    }
?>
<abbr title="Copyright">&copy;</abbr> <?php echo $copyright_year; ?> szdy.info
$since_year を 2002 として、今現在が 2009 年の場合の実行結果
© 2002-2009 szdy.info

全ページが PHP であることが前提だけど、こいつを個別のファイルとして保存し全ページで include してやると幸せになれる。

参考リソース
カテゴリー
Web

PHP を使って IE 6 以外の UA では XML 宣言をする

XML 宣言をすると IE 6 では CSS のボックスの解釈とかおかしくなっちゃうんで、PHP を使って IE 6 では XML 宣言をしないようにし、それ以外の UA では XML 宣言させるようにする。

XML 宣言部分のソースコード
<?php
    $ua = $_SERVER['HTTP_USER_AGENT'];

    if (!(ereg("Windows",$ua) && ereg("MSIE 6",$ua))) {
         echo '<?xml version="1.0" encoding="UTF-8"?>' . "n";
    }
?>
参考リソース
カテゴリー
Information

Seesaa BLOG から引っ越し

Seesaa ブログ旧べたろぐ。からこの WordPress にログを移しました。

カテゴリー
Diary

2009 弘前公園の花見 夜桜編

弘前公園の夜桜。ライトアップされていてとてもきれいだった。花びらが光り輝いていて星空のようにも見えた。

以下は携帯の写メ。夜の撮影なのでピンボケすいませんな感じです。

  • 20090425185307
  • 20090425185627
  • 20090425191616
  • 20090425191644
  • 20090425191829
  • 20090425192848
  • 20090425193104
  • 20090425193202
  • 20090425193222
  • 20090425193411
  • 20090425193502
  • 20090425193655
  • 20090425194055
  • 20090425194122
  • 20090425194352
  • 20090425194528
  • 20090425194835
  • 20090425195220
カテゴリー
Diary

2009 弘前公園の花見

弘前公園へ花見に行った。雨が降っていたけどたまに太陽が顔を出していた。

以下は携帯の写メ。

  • 20090423163837
  • 20090423163904
カテゴリー
Web

404 not found – error.cgi

とりあえずエラーページを用意してみました。いわゆる 404 Not Found とかいうアレです。

なぜって?ディレクトリ内の丸見えを防ぎたかったんです

使っているサーバはさくらインターネットのレンタルサーバ スタンダードプランで、さくらは .htaccess で設定をいぢることはできるんですが、Options が使えない。なのでインデックスファイルが存在しないディレクトリを開いた時に中身が丸見えになるのを防ぐには、Options を使わずに違うアプローチが必要になる。公式サポートのひみつのフォルダにあるファイルの一覧を見られないようにしたいというページでは DirectoryIndex を使ってインデックスファイルの設定の最後にエラーページを指定して、インデックスファイルが存在しない場合はエラーページに飛ばす方法が書かれていました。まあ、この方法を使うことにしたわけですが、ただエラーページを用意しただけじゃつまらないので色々と細工をしてみました。

めんどくさいことは Perl に投げちゃお

細工と言っても単純で、エラーコード 404 だけでなく 403500 にも対応できるように、エラーページを Perl スクリプトにして動的に出力してやることにしました。

ステータスコードは検索ロボットたちに優しいんです

Perl スクリプトにすることでステータスコードをきちんと返すことができるようになる。きちんとステータスコードを出力することによって、エラーを、人にだけでなく Google や Yahoo などの検索ロボットにも伝えることができるので、結果的に検索から訪れる人に対してのエラーを減らすことができる。

真っすぐな視線には弱いんです

なお、当初の目的である、インデックスファイルがない時に error.cgi へ飛ばした場合ですが、error.cgi へ直接アクセスされることになります。なので、直接 error.cgi へアクセスがあった時はエラー 404 を返し、ファイルは存在しませんよと偽装することにしました。

error.cgi の大まかなサンプルコード
my $error_code = $ENV{REDIRECT_STATUS};

# エラー 500 (Internal server error) の場合
if ( $error_code eq "500" ){

# エラー 404 (File not found) の場合
} elsif ( $error_code eq "404" ){

# エラー 403 (Permission denied) の場合
} elsif ( $error_code eq "403" ){

# error.cgi への直接リンクの場合
} else {
    # 404 を偽装しステータスコードも 404 を返す
    print "Status: 404 Not Found\n";

}
.htaccess の中の関連する項目
#-----------------------------------------------
# インデックスファイル

DirectoryIndex index.cgi index.php index.xhtml index.shtml index.html /error/error.cgi

#--------------------------------------------------
# エラー400 (Bad Syntax) リクエストの方法が違います
# エラー401 (Authorization Required) 認証に失敗しました
# エラー403 (Permission denied) アクセス権限がありません
# エラー404 (File not found) 該当するページが見つかりません
# エラー500 (Internal server error) 内部サーバーエラー(主にCGIなどの誤り)

#ErrorDocument 400 /error/400.php
#ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/error.cgi
ErrorDocument 404 /error/error.cgi
ErrorDocument 500 /error/error.cgi
error.cgi の実行結果例

エラーページ作成にあたって 68user’s page 内の error.cgi を参考にしました。

カテゴリー
Movie

Final Fantasy 7 Advent Children Complete

いやあ、見ましたよ。タイトルのやつ。

ブルーレイってすごいわあ。CG なのか実写なのかわからない。それは CG 技術のすごさもあるんでしょうけど本当に綺麗。テレビのアナログ放送の解像度は 720×480。DVD も同じ。で、地上デジタル放送やブルーレイといった、いわゆるハイビジョンと呼ばれるものの解像度は 1366×768 〜 1920×1080。画素数にするとなんと 3 倍〜 6 倍も違う。画面に映し出される情報量が全然違うってことで。DVD よりも地上デジタル放送で映画なんか観る方が綺麗なんよね。

[tmkm-amazon]B001Q2HODM[/tmkm-amazon]