2009年9月27日の投稿

2009-09-27
晴れ

Ktai Entry 0.9.0 ベータ1配付

ゆりこ による 02:18:40 の投稿
カテゴリー: WordPressハック
タグ: , ,
Ktai Entry の設定画面はシンプルです。

Ktai Entry の設定画面はシンプルです。

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 という形に改名しました。
  • ファイル名に半角スペースが含まれる場合、アンダースコア (_) に置換するようにしました (従来はスペースを削除していました)。
ダウンロード: ktai_entry090-beta1.tar.bz2 (89.6KB)
正式版が出ています。

今回は、対応する WordPress バージョンを見直して 2.6 以降としました。これに伴い、定期的なメールボックスの読み込み動作を wp-cron 利用にしました。これにより、Ktai Style による携帯ページの閲覧でもメールボックスの読み込みが行われるようになっています (携帯テーマの header.php で ks_wp_head() のコメントを外す改造が必要) また、WordPress MU において、より正しく動作するよう対応させています。

まだまだベータ版なので、Ktai Entry の開発に協力したいという方のみ利用をお願いします。特に WordPress MU での動作はテストが不十分なので、試用して頂けると幸いです。

カテゴリー別新着記事を見せる

ゆりこ による 03:49:40 の投稿
カテゴリー: WordPressハック,更新履歴
タグ: ,
カテゴリー別新着記事は /arc/ で見られます

カテゴリー別新着記事は /arc/ で見られます

先日から、http://www.yuriko.net/arc/ の URL で「カテゴリー別新着」が見られるようにしました。この URL は、手書き HTML/自作ウェブログツールの時代では「最近 NN 日分」の記事を見せていたのですが、WordPress に変更してからは Not Found となっていました。Google ウェブマスターツールを利用するようになって、サイト内のリンク切れがつぶさに確認できるようになりましたが、このとき、/arc/ へのリンク切れが結構多いことに気がつきました。これではいかんということで対応したものです。

そもそも、当サイトの URL 体系が /YYYY/MM/DD/ じゃなくて /arc/YYYY/MM/DD/ とかにしたのは、サイトを構築するツールの変更を容易に行えるように準備したものです。/ 直下に YYYY を切る方が明らかに美しいですが、ツールの都合によってサブディレクトリーの下でないと設置しにくい場合に困ると考えたのです。結局、WordPress だと / 直下に入れることが容易だったため、この準備は冗長になっています。

今回はいろいろ試行錯誤しましたが、最終的には次の手法で落ち着きました。

  1. カテゴリー別新着用のページテンプレートを作ります。ページテンプレートには以下のようなコードを入れます。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>
  2. 固定ページを1つ作り、ページスラッグを「arc」とします。パーマリンク体系である「/arc/%year%/%monthnum%/%date%/%postname%/」と重複するような気がしますが、WordPress は投稿かページかをきちんと区別してくれて、/arc/2009/ ならば投稿 (の年別アーカイブ)、/arc/ ならば固定ページとして処理してくれます。

この手法は、パーマリンク体系が「/archives/%post_id%/」の場合にも応用できますね。この場合「/archives/」という URL になるような固定ページを作ればいいのです。パーマリンク体系が、ごく普通の「/%year%/%monthnum%/%date%/%postname%/」だったら、カテゴリー新着用には「/category/」という URL が適切でしょうか。