テンプレートタグの投稿

Ktai Style 2.0.0-beta1 配布
Ktai Style の次期バージョン 2.0.0 のベータ版その1を配布いたします。1.81からの変更点は以下の通りです。
- クッキー対応端末 (ドコモ mova、ソフトバンク PDC *以外* の多くの端末) において、ログインしたままウェブログ閲覧ができるようにしました。
- コメント投稿時にログインしたときも、ログイン状態を継続するようにしました。
- 自身が編集できる投稿・ページについては、閲覧時に「編集」リンクが出るようにしました。
- WordPress 2.9 のゴミ箱機能に対応しました。
- 独自フィルターフックの名称を XXXXX/ktai_style.php → ktai_XXXXX に変更しました。当面は従来の名称が使えますが、早い目に変更をお願いします。
- redir/ktai_style.php フィルターを廃止しました。redir.php テンプレートをご利用ください。
- Ktai Style 1.00 から導入した、
get_stylesheet(), get_template(), load_theme_textdomain()等の結果を携帯テーマに振り替える機構を廃止しました。これらのテンプレートタグは PC 向けテーマを返します。 - WordPress 2.8 以降において、ドコモ mova およびソフトバンク PDC 端末の場合、投稿を削除するなどの確認画面で「はい」をクリックしても正常に処理されない不具合を改善しました。
- WordPress 2.9 にて、時々 PC 閲覧時に携帯テーマをロードしようとして白紙画面または PHP エラーになる現象に対処しました。
- WordPress 2.9 において、携帯管理パネルの投稿一覧/ページ一覧におけるコメント数が不正 (コメント0件なのに「2」と表示される等) になる現象に対処しました。
- 定数「KS_なんちゃら」のすべてを「KTAI_なんちゃら」に変更しました。
今回は、WordPress 2.9 対応の強化および、懸案事項だった「ログインしつつウェブログ閲覧」機能の導入です。当初は WordPress 2.9 での不具合 (時々 PC 閲覧時に携帯テーマをロードしようとして白紙画面または PHP エラーになる) に対応させて「Ktai Style 1.82」として出すつもりでした。しかし、これへの対応のためには「Ktai Style 1.00 から導入した、get_stylesheet(), get_template(), load_theme_textdomain() 等の結果を携帯テーマに振り替える機構」を廃止する必要があると判明しました。これをやってしまうと、少なくとも「Ktai Style 1.90」にしなければなりませんでした。作り込みを行なっていた WordPress 2.9 でのゴミ箱対応も盛り込めば「1.90」を名乗るにはふさわしい内容と思えました。
これくらいで機能追加をやめておけばよかったのですが、「ログインしつつウェブログ閲覧」をクッキ対応端末に限る (==iモードブラウザ1端末を見捨てる) ことにして実装してみました。クッキー対応端末に限れば実装が簡単になることは以前から分かっていましたが、いざやってみると、少々落し穴がありつつも順調に作ることができました。とりあえず形になったので「2.0.0 ベータ1」として公開する次第です。今回は別途配布のテーマもすべて入れてあります。
当然ながら、「ログインしての閲覧」ができることで最大のメリットは携帯向け P2 テーマがやっと実力を発揮できることでしょう。今回、携帯 P2 テーマをテストするためのデモサイトを作りました。ぜひともユーザー登録の上、実験をお願いいたします。

Ktai Style テーマ配布を独立プロジェクト化
このたび、SourceForge.JP 上で Ktai Style のテーマ配布プロジェクトを WordPress Plugins/JSeries から独立させました。同時に、Arege, Blue Ocean, iPotch, Photolog, Spanner テーマを Ktai Style 1.81 対応にアップデートしました。携帯 P2 テーマはしばらくお待ちください。
とりあえず新規プロジェクト登録およびリリースファイルを新しいプロジェクトに入れただけです。今後、テーマ配布ページを独立したサイトとし、WordPress 公式テーマディレクトリーのようにテーマを簡単に選べるようにする予定です。
「携帯テーマを作ったので登録してほしい」という方は、まず SourceForge.JP に登録した上で、連絡をください。

カテゴリー別新着記事を見せる
先日から、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 が適切でしょうか。

携帯テーマ Arege, iPotch, Photolog アップデート
さきほど、携帯テーマの Arege, iPotch, Photolog をアップデートしました。それぞれ以下のような更新内容です。
- Arege
-
- header.php で定義している $ks_settings['list_pages'] 引数のデフォルトを post_title に変更。
- コメントを複数ページに分割しているときの表示を調整。
- iPotch
-
- ページ一覧用のオプションを header.php に分離。
- リンク一覧で、外部サイトを示すアイコンを削除。
- コメントを複数ページに分割しているときの表示を調整。
- Photolog
-
- Ktai Style 1.71 対応
- コメントを複数ページに分割しているときの表示を調整。
Arege: arege101.zip (16.1KB)
iPotch: ipotch102.zip (15.8KB)
Photolog: photolog110.zip (15.3KB)
基本的には、Ktai Style 1.72 で予定しているテーマ改造を先取りしたものです。アップデートしなくても問題はないですが、表示がより自然になります。

携帯版 P2 テーマ鋭意制作ちう
旅行記に P2 テーマを入れてみましたが、やはり携帯も同じテーマにしないと意味がないですよね。ということで、P2 テーマの携帯版も作ってみました。まだまだコメント回りとかがテスト不足であやしいですが、さっさとテストを完了させて、本日中に Ktai Style 1.72 ベータ版に同梱して配布したいと思います。P2 テーマを作っていると Ktai Style のバグでうまく動かない点があったので、Ktai Style 1.72 が必須になっています。
残念ながら、フロントページからの投稿機能とか、コメント投稿後のオートロードとかはきちんと再現できていませんが、見た目が似ているのは魅力だと思います。
このように、PC 向けテーマに類似した携帯テーマがあるとオモロいですよね。今後、メジャーな PC テーマの作者と連携してみたいと思っています。まずは、WordCamp でライトニングトークをされた「め組」さんでしょうか。
[追記] いつのまにか P2 テーマはバージョン 1.0.3 になってて、をかもとさんの日本語リソースが同梱されていました!! でも、わたしの指摘事項がさっぱり入っていません……。ひょっとすると、古いリソースを送ってしまったのかもしれませんね。あと、PHP ショートタグの問題も直っていません……。これって、Automattic が使っているウェブサーバーが short_open_tag = on ということなんですよね?? それってまずくないですか??
旅行記をP2テーマにしたけどいまいち
旅行記を P2 テーマにしてみました (をかもとさんによる日本語リソース)。P2 は WordCamp Tokyo 2009 で Matt が紹介したテーマで、Automattic では、社員同士の連絡にも使っているようです。もともと、旅行記は「リアルタイムレポート」で、すごいときには「各駅に停車するごとに投稿」ですから、こういうマイクロブログ的なテーマとは非常に相性がよさそうという目論見でした。
ところが、導入には苦労しました。まず、一部で PHP ショートタグ形式があるので、それを殲滅しなければなりません。function.sphp の 724 行付近 editarea<?}?> と、entry.php の27行目付近 editarea<?}?> です。ここを editarea<?php } ?> にすればOKです。
次に、このテーマは WordPress 2.7 以降対応なのですが、旅行記は Ktai Style のテスト用としてわざと WordPress 2.5.x のままです。このため、テーマがうまく動きませんでした。仕方なく、テーマの functions.php にて、テーマで使っている WordPress 2.7 以降専用関数を無理矢理定義することで回避しました (WordPress 2.7.1 にアップデートするのが近道ですが、それはやりたくなかったので)。
で、導入してみましたが、けっこうがっかりなところが多くありました。
- タイトルが表示されず、投稿時にも指定できない。P2 テーマから投稿すると、本文先頭の何文字かがタイトルになる。そして投稿スラッグもそれになる (==日本語のスラッグになる)。
- 各投稿にカテゴリーが出ない。旅行記は、各旅行をカテゴリーで分類していますが、カテゴリーが出ないとちょっとややこしい。
- コメントが少ないのでつまらない。P2 テーマの醍醐味は、多くの人がユーザー登録して投稿やコメントをやり合うことですが、そうなっていないので、あまりオモロくない。
- シングルポスト表示では前後の投稿へのリンクが出ない。
当面はこのままとしますが、やっぱり旅行記用にはふつうのテーマのがよさそうです。P2 は、ユーザー登録を開放した別ブログを作るのがベストですね。
逆に、P2 テーマを楽しむためには、Ktai Style 用の P2 風テーマを作りたいところです。そうなると、携帯電話から WordPress のユーザー登録機能とか、ログインしたままブログ画面を閲覧する機能 (==携帯上の P2 テーマから投稿できる) も欲しいですね。それがないと P2 テーマの魅力半減ですから。
MT4i 風携帯テーマ Spanner
さっそくですが、昨日のエイプリルフールで使用した、MT4i 風携帯テーマを一般に配布いたします。名称は「Spanner」といいます (Movable Type のアイコンがスパナなので)。WordPress Plugins/JSeries の「Ktai Style テーマ集」にも掲載してあります。
実はこのテーマは去年のエイプリルフールで使おうと思って開発したものです。当時はまだ独自ウェブログシステムだったので、「WordPress に移行かつ MT4i 風テーマを採用」しつつ「Movable Type にしました」というエイプリルフールを検討したのです。でも、「あまりシャレになってない」と思ったことと、旅行記の方の「ランダム表示」で十分オモロイと判断したため中止し、2009年まで取っておくことにしたものです。今年の場合「Movable Type にしました」という文言はやめて、単純に「MT4i を採用」としましたが、偶然にも、他サイトによる「WordPress への移行エイプリフール」に対する強烈な皮肉になっています
あと、パソコンでの閲覧で強制的に携帯表示にしていましたが、これは以下のようなコードを my-hacks.php に書くことで実現しています。その仕組み上、携帯テーマの functions.php に書くのでは不可能です。
function ks_force_ktai_mode($ktai, $ua) {
if (! $ktai) {
$ktai = new Ktai_Service_Other($ua);
}
return $ktai;
}
if (! is_admin() && ! function_exists('login_header')) {
add_filter('detect_agent/ktai_style.php', 'ks_force_ktai_mode', 10, 2);
}

MT4i を採用
去年3月31日に WordPress を採用した当サイトですが、世間の潮流に逆らって、MT4i を採用することにしました。さすがに、2003年から公開されているソフトウェアだけに、作り込み度合いが違いますね。非常に高度なハックにより、携帯サイトの URL は従来と同じく「http://www.yuriko.net/」です。
なお、パソコンで見ても携帯風の表示になっているかもしれませんが、それは気のせいです


スラド風テーマも作ってみる
Masayan さんところで、WordPress ユーザーの携帯サイト画面を載せてみるという企画がされていたんですが、をかもとさんの「ウチのところは、元々 Livedoor blog だったので、なんとなく Redportal テーマがしっくりくるのです」という発言には感銘を受けました。Redportal テーマは、附属ドキュメントにも書いてある通り、Livedoor ブログの携帯版に似せて作ったもです。はっきり言ってシャレで作ったのですが、なぜか人気があって、採用例が多いです。
その理由がよく分からなかったのですが、「以前 Livedoor ブログを使っていた」というのは、その1つとしてありそうです。となると、いろんなブログサービス・ウェブサービスの画面を似せた携帯テーマはウケるかもしれないですね。以前から、「はてなダイアリー」の携帯版テーマに似せたものを作ろうかと思っていますが、人によってかなり見た目が違っていて「似せるモト」が定まっていません……。
ということで、特徴がはっきりしてて作りやすいものとして、スラッシュドット風の携帯テーマを作ってみました。濃緑と角丸長方形を入れたらしまいという気がしますが、けっこう工夫があります。スラッシュドット・ジャパンはモバイル版もあるんですが、これはスマートフォンに最適化されているようで、通常の携帯電話ではかなり貧弱な表示になってしまいます。ひょっとすると、今回作ったテーマの方が見栄えがよいかも??
しばらくは、当サイトの携帯版をこのテーマとしてみますので、興味ある方はいじってみてください。残念ながら、このテーマを実現するために Ktai Style 本体もいじっていますので、テーマのみの配布はまだできません。Ktai Style 1.71 のベータ版を出すときに同梱してみましょうか。Ktai Style の機能追加ですが、「ページ一覧」のメニューを出すテンプレートタグ ks_pages_menu() が背景が濃い場所での使用を考慮していなかったため、リンク色を指定できる機能を追加して白い色などに変更できるようにしています。
テーマ名称は、当初「VirguleDot」を検討していましたが、なんかいまいちなので素直に「Arege」に変えました。Slash を Virgule と言い換えて、他にない造語「VirguleDot」を作るというやり方はよいのですが、発音しにくくて通りがよくなかったので……。
[追記] Ktai Style 1.71-beta1 に同梱して配布開始しました。



上に戻る






