2009年9月27日の投稿

Ktai Entry 0.9.0 ベータ1配付
WordPress 用メール投稿プラグイン Ktai Entry のバージョン 0.9.0 ベータ版 (その1) を配布します。バージョン 0.8.10 からの変更点は以下の通りです。
- 動作対象を WordPress 2.6 以降としました。これにより、UTF-8 動作のみ動作保証します。(XOOPS モジュール版 WordPress などの EUC-JP 動作はサポート外)
- 外部メールボックスを定期的に読み込むトリガーを WordPress 標準の wp-cron 動作に変更しました。これにより、携帯電話でのウェブログ閲覧でもメール取り込み動作が行なわれます。
- WordPress MU 2.8 以降で「プラグインをサイト全体で使用する」を実行した場合に、正しく動作するようにしました。
- 「メール着信時に投稿スクリプトを起動させる方法」を WordPress MU における複数ブログ設置に対応しました。各ブログごとに投稿メールアドレスを作り、wp-config.php を編集して wp-content/sunrise.php ファイルを設置する必要があります (詳細は設置方法を参照)。
- 投稿時のテンプレートを変更しました。これにより、画像の配置を左側以外に設定できるようになりました。
- WordPress 2.7 から導入された「大サイズ」に対応しました。
- 独自フィルターフックの名称を xxxxx/ktai_entry.php から ke_xxxxx という形に改名しました。
- ファイル名に半角スペースが含まれる場合、アンダースコア (_) に置換するようにしました (従来はスペースを削除していました)。
今回は、対応する WordPress バージョンを見直して 2.6 以降としました。これに伴い、定期的なメールボックスの読み込み動作を wp-cron 利用にしました。これにより、Ktai Style による携帯ページの閲覧でもメールボックスの読み込みが行われるようになっています (携帯テーマの header.php で ks_wp_head()
のコメントを外す改造が必要) また、WordPress MU において、より正しく動作するよう対応させています。
まだまだベータ版なので、Ktai Entry の開発に協力したいという方のみ利用をお願いします。特に WordPress MU での動作はテストが不十分なので、試用して頂けると幸いです。
カテゴリー別新着記事を見せる
先日から、http://www.yuriko.net/arc/ の URL で「カテゴリー別新着」が見られるようにしました。この URL は、手書き HTML/自作ウェブログツールの時代では「最近 NN 日分」の記事を見せていたのですが、WordPress に変更してからは Not Found となっていました。Google ウェブマスターツールを利用するようになって、サイト内のリンク切れがつぶさに確認できるようになりましたが、このとき、/arc/ へのリンク切れが結構多いことに気がつきました。これではいかんということで対応したものです。
そもそも、当サイトの URL 体系が /YYYY/MM/DD/ じゃなくて /arc/YYYY/MM/DD/ とかにしたのは、サイトを構築するツールの変更を容易に行えるように準備したものです。/ 直下に YYYY を切る方が明らかに美しいですが、ツールの都合によってサブディレクトリーの下でないと設置しにくい場合に困ると考えたのです。結局、WordPress だと / 直下に入れることが容易だったため、この準備は冗長になっています。
今回はいろいろ試行錯誤しましたが、最終的には次の手法で落ち着きました。
- カテゴリー別新着用のページテンプレートを作ります。ページテンプレートには以下のようなコードを入れます。
get_categories()
の引数ですが、サイドバーのカテゴリー一覧と同じ指定 (投稿数の降順) です。<div class="post hentry"> <h3>カテゴリー別新着</h3> <p> <?php $categories = get_categories('orderby=count&order=desc'); if (count($categories)) { ?> <dl> <?php foreach ($categories as $c) { query_posts('cat=' . intval($c->term_id) . '&posts_per_page=1&orderby=date&order=DESC'); if (have_posts()) { the_post(); printf('<dt>%1$s</dt><dd>' . . '<a href="%2$s">%3$s</a> (%4$s)</dd>' . "\n", wp_specialchars($c->name), get_permalink(), get_the_title(), get_the_time('Y-m-d H:i:s')); } } ?> </dl> <?php } ?> </p></div>
- 固定ページを1つ作り、ページスラッグを「arc」とします。パーマリンク体系である「/arc/%year%/%monthnum%/%date%/%postname%/」と重複するような気がしますが、WordPress は投稿かページかをきちんと区別してくれて、/arc/2009/ ならば投稿 (の年別アーカイブ)、/arc/ ならば固定ページとして処理してくれます。
この手法は、パーマリンク体系が「/archives/%post_id%/」の場合にも応用できますね。この場合「/archives/」という URL になるような固定ページを作ればいいのです。パーマリンク体系が、ごく普通の「/%year%/%monthnum%/%date%/%postname%/」だったら、カテゴリー新着用には「/category/」という URL が適切でしょうか。