2009年9月の投稿

2009-09-27
晴れ

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

ゆりこ による 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 が適切でしょうか。

2009-09-30

Ktai Style を iPhone, Android 対応にした

ゆりこ による 03:08:00 の投稿
カテゴリー: WordPressハック,モバイル・携帯電話
タグ: , , , ,

iPhoneでKtai Styleの出力を行う

iPhoneでKtai Styleの出力を行う

viewport設定をしないとiPhoneでは字が小さい

viewport設定をしないとiPhoneでは字が小さい

拙作の WordPress 用携帯対応プラグイン「Ktai Style」を、iPhone および Android でも適用できるよう改造してみました。まだ正式版/ベータ版での配付はなく、CVS 版しかありません。一早く試してみたい人は使ってみてください。ベータ版よりもさらに品質が落ちますので、その点はあしからず;-)

実際に表示させてみると、通常のウェブ表示よりは見劣りしますが、それなりに使い勝手は悪くありません。Android では文字の大きさが適切でしたが、iPhone では viewport の設定をしないと文字が小さくて見ずらい状態でした。以下のように viewport 指定の meta タグを入れてやれば、ちょうどいい大きさになりました。この meta タグは、Ktai Style の附属テーマおよび別途配付テーマにおいて、iPhone 閲覧時に自動的に入るようになる予定です。

<meta name="viewport" content="width=device-width,initial-scale=1.0;" />

(続きを見る…)

Androidの内蔵ブラウザーはアドレスバーが変

ゆりこ による 05:02:27 の投稿
カテゴリー: ソフトウェア,モバイル・携帯電話
タグ: , , ,

HT-03A モニター記事を全部見る。

Androidブラウザーは長いURLの末尾を省略してしまう

Androidブラウザーは長いURLの末尾を省略してしまう

HT-03A の内蔵ウェブブラウザーの挙動を調べてみました。真っ先に目がいったのはアドレスバーです。1行に「ドメイン名 (FQDN) とページタイトル」をまとめて表示するという、他のブラウザーでは見たことのないスタイルです。

ブラウザーのアドレスバーを隠してはならないことは、セキュリティーの立場から必要なことです。Android では、表示スペースを節約するため、最低限必要な情報として FQDN を出しています。残念ながら、長い FQDN の場合は中間ではなく末尾が削られてしまって、真正なサイトかを一目で確認することはできません。とはいえ、メニュー→その他→ページ情報、で URL を確認できるので、目くじらを立てる必要はないでしょう。

問題と言えるのは、リダイレクトがかかったときの挙動です。なぜか、以下のような状態遷移になります。(注: Android 1.6 ではマトモな挙動に直されています)

  1. 元FQDNのみ
  2. 新FQDNのみ
  3. 元FQDN:ページタイトル
  4. (ページレンダリング中)
  5. 新FQDN:ページタイトル

もし、あやしいページを開いたことに気がついた場合中止するのは「ページレンダリング中」ですが、このときは、一度表示された新 FQDN が消えてリダイレクト元の FQDN に戻っているため、URL からは「あやしいサイトかどうか」の判定が困難となっています。表示が完了したタイミングで新FQDNに差し替えられています。凶悪なことに、レンダリング中に「ページ情報」を開いても、リダイレクト元の URL しか表示されません!!

(続きを見る…)