携帯閲覧タグの投稿

2010-03-06
雨

携帯対応プラグイン Ktai Style バージョン 1.82 リリースおよび次期リリース候補2.0.0-rc1配付

Ktai Style 2 のサンプル画像を拡大表示

WP LaTeX プラグインによる数式画像がそのまま表示されます

絵文字対応の WordPress 携帯対応プラグイン「Ktai Style」の安定版バージョン 1.82 をリリースいたします。また、次期リリース候補版 2.0.0-rc1 も配付いたします。1.81 から 1.82 への変更点は次の通りです。

  • WordPress 2.5.x でも動くようにしました。
  • au 新機種およびイー・モバイル H31IA に対応しました。
  • WP LaTeX プラグインが出力する数式画像をそのまま表示させるようにしました。
  • 検索エンジンに対しては外部サイトへのリンクを中継ページ経由ではなく直接リンクするようにしました (時間がたつと中継ページへのリンクがエラーになるため)。
  • 設定パネルで「投稿・コメントの日時書式」の設定を変更しようとしても反映されない不具合を修正しました (Ktai Style 1.80, 1.81 の不具合)。
  • WordPress の管理パネルから Ktai Style プラグインの削除が正しく行えない不具合を修正しました。
  • 携帯管理パネルで、投稿/ページ/コメントに入力したバックスラッシュが消えてしまう不具合を修正しました (これは SQL インジェクション脆弱性ではありません)。
  • ks_in_network() を au およびウィルコムの IP アドレス帯域変更に対応させました。
  • ks_image_alignment フィルターを ktai_image_alignment に名称変更しました。
ダウンロード
安定版 (WordPress 2.5〜2.8.6 用): ktai_style182.zip (538.2 KB)
バージョン 1.83 が出ています

2.0.0ベータ3からリリース候補その1への変更点は以下の通りです。

  • 動作対象を WordPress 2.8 以降としました。
  • クッキー未対応端末のうち、ドコモ FOMA のiモードブラウザ1端末でのログイン機能を復活させました。
  • au 新機種に対応しました。
  • WP LaTeX プラグインが出力する数式画像をそのまま表示させるようにしました。
  • 検索エンジンに対しては外部サイトへのリンクを中継ページ経由ではなく直接リンクするようにしました (時間がたつと中継ページへのリンクがエラーになるため)。
  • 設定パネルで「投稿・コメントの日時書式」の設定を変更しようとしても反映されない不具合を修正しました (Ktai Style 1.80, 1.81 の不具合)。
  • WordPress の管理パネルから Ktai Style プラグインの削除が正しく行えない不具合を修正しました。
  • 携帯管理パネルで、投稿/ページ/コメントに入力したバックスラッシュが消えてしまう不具合を修正しました (これは SQL インジェクション脆弱性ではありません)。
  • ks_in_network() を au およびウィルコムの IP アドレス帯域変更に対応させました。
  • ks_term_name() は、デフォルトで携帯用検索エンジンの名前を返すようにしました。検索エンジンが名乗る携帯端末名を取得する場合は ks_term_name(KTAI_NOT_ECHO, false); としてください。
ダウンロード
開発版 (WordPress 2.9 以降はこちらが必須): ktai-style200-rc1.tar.bz2 (761.8KB)
より新しい正式版が出ています。

Ktai Style の 1.xx 系統のメンテナンスリリースとして 1.82 を出しました。1.81 の不具合修正および、サポートの手間を簡単にするため、WordPress 2.5.x での動作を復活させました。そのかわり、Ktai Style 2 系統は WordPress 2.7.1 以前を切り捨てました。

2009-12-25
晴れ

携帯対応プラグイン Ktai Style バージョン 1.81 リリース

画像の回り込みができます

画像の回り込みができます

絵文字対応の WordPress 携帯対応プラグイン「Ktai Style」の安定版バージョン 1.81 をリリースいたします。1.80 からの変更点は次の通りです。

  • 携帯対応ブログの URL として、新たに ドリコムブログ忍者ブログ(blog.shinobi.jp ドメインのみ) の URL を認識するようにしました。これらのブログは中継ページを出さずに直接リンクします。
  • WP Super Cache への対応方法を変更しました。これにより、Ktai Style 1.80 において、WP Super Cache と併用したときに発生していた不具合が解消されます (チケット#19919)。
  • サーバーの PHP が 5.1 以降、かつ、タイムゾーンの設定が世界標準時よりもプラス (グリニッジ子午線より東の地域) の場合、WordPress 2.9 において携帯管理機構にログインできないことがある不具合を改善しました。
  • Ktai Style 1.80 において、ビジュアルエディタで img 要素の class 属性が消えることがある問題、<!–more–> が挿入できない問題を修正しました。(チケット#19918)
  • Ktai Style 1.80 において、携帯の管理パネルからコメント返信ができなかった不具合を修正しました。
  • Ktai Style 1.72〜1.80 において、コメント投稿で携帯端末情報 (iモードID、EZ番号等) を必須と設定した場合、携帯端末情報が送信されなかったときのエラーが日本語化されていない不具合を修正しました。
  • WordPress 2.8 以降において、コメントとトラックバック・ピンバックを混在表示させているとき、コメント種別がローカライズされず [Comment] と表示される不具合を修正しました。
  • Classic テーマのコメント表を WordPress 2.7 以降の見た目を WordPress 2.6.5 以前の見た目に似せるようにしました。(従来は Default テーマのコメント表示に似てしまっていました)
  • redir.php テンプレートの仕様を変更し、KS_ALWAYS_RELAY_PAGE を true に設定した場合、携帯サイトの URL と PC サイトの URL が違うにかかわらず「訪問先のサイトは同じ URL で携帯表示があります」という表示になる不具合を修正しました。
  • Ktai Style 1.80 において、ks_content(), ks_get_content() で文字数指定したとき、「続きを読む…」ではなく単なる [...] が出力されるようにした仕様変更をやめて、Ktai Style 1.74 までの挙動に戻しました。(チケット#19917)
  • 定数「KS_なんちゃら」の一部を「KTAI_なんちゃら」に変更しました。自作テーマに関するものは KS_ALWAYS_RELAY_PAGE → KTAI_ALWAYS_RELAY_PAGE, KS_ADMIN_MODE → KTAI_ADMIN_MODE のみです。
ダウンロード: ktai_style181.zip (536.4 KB)
より新しいバージョンが出ています。

クリスマスリリースで御届けした今回ですが、主にバグフィックスです。特に Ktai Style 1.80 で作り込んでしまったバグを直しています。1.80 利用者の方はお手数ですが更新をお願いいたします。

WordPress 2.9 のゴミ箱対応は、Ktai Style 1.82 での採用を予定しています。ご期待ください。

2009-12-02
晴れ

携帯対応プラグイン Ktai Style バージョン 1.80 リリース

画像の回り込みを行えるようにしました。

画像の回り込みを行えるようにしました。

絵文字対応の WordPress 携帯対応プラグイン「Ktai Style」の安定版バージョン 1.80 をリリースいたします。1.74 からの変更点は次の通りです。

  • WordPress 2.5.x 系統のサポートを終了し、WordPress 2.6 以降対応としました。WordPress 2.5.x では Ktai Style 1.74 をご利用ください。
  • iPhone, iPod touch, Android 端末でも Ktai Style による携帯表示を行えるようにしました (デフォルトでは適用されません)。
  • ソフトバンク 3G 端末の場合、絵文字をウェブコードではなく Shift_JIS のバイナリーで表示させるようにしました。わずかながらパケット数削減となっています。
  • caption ショートコードを使って画像を貼り込んでいる場合、もしくは img 要素の class に alignleft, alignright を使っている場合、左右の配置指定を反映して携帯でも回り込みが行なわれるようにしました。ただし、au 端末では画像の次に p 要素があれば回り込みが解除されてしまいます。
  • ビジュアルエディターで携帯絵文字を含む投稿やコメントを編集しても壊れないようになりました。ただし、携帯絵文字そのものはビジュアルエディターでは表示されません。絵文字の修正を行うためには、HTML エディターで編集してください。
  • フォームに ks_fix_encoding_form() を使用していれば、Shift_JIS → UTF-8 の変換を自動的に行うようにしました。(チケット#16590)
  • Contact Form 7 バージョン 2.0.6 以降を使っている場合、携帯電話からフォームを送信しても文字化けしないようになりました。
  • 管理機構で、携帯テーマの設定機能を廃止しました。
  • ks_content() で文字数指定した場合、本文中のショートコードが残らないようにしました。(チケット#17880)
  • Default 以外のテーマで、コメントとトラックバック・ピンバックを混在表示させたとき、コメント種別表示が [Comment] のように英語になってしまう問題を修正しました。
  • is_ktai() 関数の引数に 'search_engine' を追加しました。モバイル検索エンジンにクロールされているとき、クローラ名になります。
  • ks_term_name() が au の新機種に対応しました。
ダウンロード: ktai_style180.zip (531.8 KB)
より新しいバージョンが出ています

約5か月ぶりのマイナーアップデートとなります。今回は iPhone, Android でも Ktai Style を適用できるオプションの導入、Contact Form 7 との連携機能、画像の回り込み改善など機能アップを図っています。

今回は多少チケットを解消しましたが、まだまだ多数残っています。少しずつ改善を図っていく予定ですので、ご期待ください。

2009-07-16
晴れ

携帯対応プラグイン Ktai Style バージョン 1.74 リリース

Photolog テーマは各投稿の画像がサムネールで出る

絵文字対応の WordPress 携帯対応プラグイン「Ktai Style」の安定版バージョン 1.74 をリリースいたします。1.73→1.74 の変更点は次の通りです。

  • WordPress 2.8 で、一部英語表示が残ってしまう不具合、およびコメント投稿時に匿名ユーザーでログイン状態になることがある不具合を修正しました。
  • Ktai Style による警告画面 (外部サイトへのリンクを辿るとき、コメントや投稿を削除するときなど) が PHP エラーにより白紙画面になってしまう不具合を修正しました (Ktai Style 1.73 のみ発生)。
  • ks_term_name() が au の新機種に対応しました。
ダウンロード: ktai_style174.zip (521.3 KB)
より新しいバージョンが出ています。

今回は、バージョン 1.73 における不具合修正 (けっこう重大) と、WordPress 2.8.1 対応です。1.73 を使っている人は必須のアップデートとなっておりますので、お手数ですが更新をお願いします。自作テーマを使っている場合はテーマの修正が必要ですので、附属ドキュメントを参照の上、作業を行ってください。

2009-06-01
晴れ

携帯対応プラグイン Ktai Style バージョン 1.73, 1.49 リリース

Photolog テーマは各投稿の画像がサムネールで出る

絵文字対応の WordPress 携帯対応プラグイン「Ktai Style」の安定版バージョン 1.73 および旧安定版 1.49 をリリースいたします。1.72→1.73 の変更点は次の通りです。

  • コメントフォーム、外部サイトへの中継ページ、その他警告ページは、メタタグとして <meta name="robots" content="noindex,nofollow" /> を出力するようにしました。
  • 外部サイトへのリンク時、携帯サイトの URL 検出がまれに失敗することがある現象を修正しました。
  • WordPress アドレス (wpurl) とブログのアドレス (home url) でホスト部が異なるとき、画像の表示ができなかったり管理パネルに入れないなどの不具合を修正しました。
  • ドコモ mova, ソフトバンク PDC で、投稿管理画面が「ページが大きすぎる」エラーを出にくくなるよう調整しました。
  • ks_term_name() が au の新機種に対応しました。
  • ks_in_network() が EZweb の IP アドレス追加に対応しました。また、iモード端末のIP帯域の誤記を修正しました。

1.48→1.49 への変更点は以下の通りです。

  • コメントフォーム、外部サイトへの中継ページ、その他警告ページは、メタタグとして <meta name="robots" content="noindex,nofollow" /> を出力するようにしました。
  • 外部サイトへのリンク時、携帯サイトの URL 検出がまれに失敗することがある現象を修正しました。
  • WordPress アドレス (wpurl) とブログのアドレス (home url) でホスト部が異なるとき、画像の表示ができなかったり管理パネルに入れないなどの不具合を修正しました。
  • フロントページを固定ページにしたとき、フッターに「最新記事」へのリンクを出すようにしました。
  • ブログで文字列検索した結果を ks_posts_nav_dropdown() によるポップアップ (プルダウン) 式ナビゲーションで移動したとき、検索文字列が化ける不具合を修正しました。(例えば、携帯」で検索させて他のページに移動すると「g」という文字列による検索になってしまう)
  • 投稿者別の表示をさせたとき (URL が ?author=1 とか /author/admin/ などの場合)、タイトルに投稿者名が表示されず「による投稿」となっていた不具合を修正しました (自作テーマの場合、テンプレートの修正が必要です。
  • ks_term_name() が au の新機種に対応しました。
  • ks_in_network() が EZweb の IP アドレス追加に対応しました。また、iモード端末のIP帯域の誤記を修正しました。
ダウンロード
バージョン 1.73: ktai_style173.zip (518.4 KB)
より新しいバージョンが出ています。
バージョン 1.49: ktai_style149.tar.bz2 (258.4KB)

今回は、au の IP アドレス変更と新機種対応およびバグフィックスです。次は大幅な機能追加を入れて 1.80 もしくは 2.0 にする予定です。

2009-04-30
晴れ

ひたちなか海浜鉄道ウェブサイトが NetCommons 採用で改悪

ゆりこ による 06:08:16 の投稿
カテゴリー: ソフトウェア,鉄道
タグ: , , ,

今年4月で開業1周年を迎えたひたちなか海浜鉄道ですが、同じタイミングで WordPress から NetCommons に変更されていました。リニューアルは、社長の記事に頼ったブログ・スタイルから、多様なニーズに応えられるようにするのが目的だそうで、それは非常に結構なことだと思うのですが、CMS エンジンの変更によって URI 体系が変更になったことが残念でなりません。

まず、「クールなURIは変わらない」の大原則に反しています。もともと、WordPress 構築時代に、デフォルトのパーマリンク (?p=NNN とか ?page_id=NN とかのクエリーを使うタイプ) にしていたのが失敗なんですが、もし、/2009/04/29/1st-aniv/ とかのパーマリンク体系にしておけば、多くのブログツール/CMS エンジンで再現できたはずです。

で、現サイトはどうかというと、各ページの URL は http://www.hitachinaka-rail.co.jp/htdocs/index.php?action=pages_view_main&page_id=18 のように、動的なクエリーを使ったものとなっています。これまた NetCommons の仕様に縛られる URI 体系なわけで、「クールな URI」に反したものとなっています (NetCommons 以外の CMS にしたら、また URI 変更となる)。せっかくリニューアルするんですから、「100年経っても変わらない URI」にしてもらいたかったです。

次に残念なところは、携帯ページが貧弱になったことです。NetCommons 自体は携帯表示機能がありますが、悲しいことに、イー・モバイル音声端末、Windows Mobile スマートフォンやゲーム機等に対応していません (マイナーなので仕方ないとも言えますが、Ktai Style はマイナーなものにも対応しているのです)。さらに、NetCommons の携帯判定が相当ヤバイという問題があります!! PEAR の NET_UserAgent_Mobile をもとに、独自の IP アドレス判別ルーチンを通して、携帯ネットワーク外からのアクセスを除外しています。携帯の契約者 ID などをもとにした簡単ログインを実装するならば、IP アドレスの判別は必須ですが、閲覧だけやID・パスワードログイン機能だけならば IP アドレス判定は余計です。何より、NetCommons の最新版 (2.1.0.1) に同梱されている html/maple/nccore/MobileCheck.class.php の IP アドレスリストは「IPチェック(調査日 2008.04.11)」という代物で、これでは使いものになりません。IP アドレスチェックを機能として盛り込むならば、2か月〜半年に1回はアップデートが必要です。ごく最近では EZweb が2009年3月10日に IP アドレス帯域を削減し、NTT ドコモは今年9月ごろに IP アドレス帯域を増やすことを予定しています。IP アドレスを削減した場合、これらの帯域が ISP などに再割り当てされたときにセキュリティーを担保できません。逆に、追加された IP アドレスからの閲覧者は、携帯電話から見ているにかかわらず PC からと判定されて、パケット量が膨大な PC ページに飛ばされてしまうのです!! これでは安心して閲覧できません。

はっきり言うと、マトモなパーマリンクが作れず、携帯端末判定が正しくできない NetCommons は捨て去った方がいいでしょうね (少なくとも、公開ウェブサイト用としては)。国立情報学研究所だったら「クールな URI」の概念くらい常識だと思うんですが、そんなにセンスないところなのでしょうか?? 内輪向けのグループウェアとして使うならば URI は動的でもいいと思うんですが、NetCommons はもっと広い用途を想定していますよね? あと、定数使いまくり、*.ini というファイルありまくりなのもダサくて仕方ありません。→元が XOOPS らしく、このダサさは XOOPS 起源なのかも?→Maple の仕様が理由っぽいです。

[追記]URL 短縮ハックがあるようです。ただし「html」という拡張子が付くのがいまいちですね ;-) 質問者も、SEO とかじゃなくて URI の永続性についてツッコマないと!!

[もう1つ追記] NetCommonsで作る、魅力あふれる学校サイト (PDF) という論文を見つけたのですが、構築例のブラウザー画面に「アドレスバーがない」というのは、驚きものです。ぜひとも「安全なウェブサイトの作り方」を読んでもらわないと。

2009-04-20
晴れ

携帯対応プラグイン Ktai Style バージョン 1.72 リリース

Ktai Style 1.72 はP2テーマ携帯版に対応。

絵文字対応の WordPress 携帯対応プラグイン「Ktai Style」の安定版バージョン 1.72 をリリースいたします。1.71→1.72 の変更点は次の通りです。

  • 各テーマの header.php の $ks_settings['list_pages'] で規定しているページ一覧の表示順序を、ページタイトル順にしました (従来は ページ ID 順でした)。
  • ks_pages_menu()の第4引数にパラメーターを入れても認識されなかった不具合を修正しました (Ktai Style 1.71 でのバグ)。
  • ks_posts_nav_multi()が、最初と末尾ページへのリンクしか出なくなっていた不具合を修正しました (Ktai Style 1.71 でのバグ)。
  • 附属テーマすべてに対し、コメントのページ分割表示を設定している場合でコメントが1ページに収まるとき、余計な空行が出ないようにしました。
  • Default テーマの header.php で $ks_settings['list_pages'] を設定しても、footer.php でのページ一覧表示に反映されない不具合を修正しました。また、(WordPress 2.7 以降で搭載された) コメントのページ分割表示を行なっている場合、コメント番号がページをまたがって連番になるようにしました (従来は各ページで1番から始まっていました)。
  • スタイルシートを利用した携帯テーマを使っている場合、mixi モバイルからアクセスできない現象があったのを改善しました。
  • ks_comments_link() で、icon 引数を '' に設定した場合、コメントなしの場合の文字列を「0」(数字の零1文字) にしても「0」という表示ではなく、コメント数表示自体がされない不具合を修正しました。
  • 携帯テーマで font タグの開きタグと閉じタグの釣り合いが取れていない場合、不正な文字が残ってしまい、XHTML 出力が乱れることがある不具合を修正しました。
ダウンロード: ktai_style172.zip (517.3 KB)
より新しいバージョンが出ています

今回も、バグフィックスです。1.71 での改修が不十分でした。同時に、1.72 ベータ版で同梱していた P2 テーマ携帯版ですが、こちらも微調整の上、公開しています。P2 テーマ採用サイトがいくつかあって(カイ士伝 P2 Version川柳戦)、なかなかオモロイのですが、これが携帯でも同じように見えるというのは楽しいですね。P2 のよさを引き出すには、ログインしてのブログ閲覧や携帯からのユーザー登録ができないといけませんが、早めに実装したいと思います。

なお、WordPress 2.3 以前用の 1.4x ブランチですが、今回はアップデートはありません。

2009-03-29
晴れ

携帯対応プラグイン Ktai Style バージョン 1.71 リリース

Ktai Style 1.70 シングルポスト画面

絵文字対応の WordPress 携帯対応プラグイン「Ktai Style」の安定版バージョン 1.71 をリリースいたします。1.70→1.71 の変更点は次の通りです。

  • ブログで文字列検索した結果を ks_posts_nav_dropdown() によるポップアップ (プルダウン) 式ナビゲーションで移動したとき、検索文字列が化ける不具合を修正しました。(例えば、「携帯」で検索させて他のページに移動すると「g」という文字列による検索になってしまう)
  • 投稿者別の表示をさせたとき (URL が ?author=1 とか /author/admin/ などの場合)、タイトルに投稿者名が表示されず「による投稿」となっていた不具合を修正しました。
  • ウィルコム絵文字の説明を公式サイトのものに準拠させました。絵文字画像がないときの代替文字も一部変更しています。
  • ks_time() などによる去年以前の日付表示が UTC (世界標準時) を基準にしていた不具合 (日本時間設定の場合、0時〜8時59分の投稿で日付が1日ずれる) を修正しました。(Ktai Style 1.60 以降で発生)
  • HTML タグを含む投稿・ページの編集が正しく行えない (編集フォームが乱れてしまう) 不具合を修正しました。(Ktai Style 1.70 のみ発生)
  • 投稿一覧・ページ一覧・コメント一覧画面で、ポップアップ (プルダウン) 式のページナビゲーションを上部に設置しました。かわりに、下部にあった複数ページのナビゲーションは前後ページのナビゲーションにしました。
  • 投稿一覧・ページ一覧・コメント一覧画面で検索させたとき、ページ数を1ページ目に戻るようにしました。検索前のページ数が10ページで、検索結果が8ページしかない場合は「見つかりませんでした」になる現象が回避されます。
  • 投稿一覧から投稿ごとのコメント一覧を表示させて、さらに文字列による検索をさせたとき、投稿ごとのコメント一覧からの絞り込みにならず、全コメントからの検索になる現象を修正しました (WordPress 2.7.x のコア自体のバグ)。
  • EZweb 端末でダッシュボードやコメント管理画面を使用したとき、「返信」リンクに不正な文字 (たいていの場合 ? 表示) が付与していた不具合を修正しました。
  • Default, Classic テーマの「最新コメント」表示で、コメントとトラックバック・ピンバックを混在させて表示しているときでも、「コメント」「トラックバック」など種別表示をやめました。絵文字アイコンが笑顔のときはコメント、家のときはトラックバック・ピンバックで判別可能です。(他のテーマでは種別表示をしていませんので、それに揃えたものです)
  • Green テーマの言語リソースを Ktai Style 本体に移動して、functions.php, ja.po, ja.mo を削除しました。
  • Loving テーマで、フロントページを固定ページにして投稿ページを別に設定した場合、「サイトトップ」へのリンクが出てこない不具合を修正しました。「/」を示す言語リソースを Ktai Style 本体に移動しました。(「メニュ〜」が残っているので、言語リソース自体は存続します)
  • Monolith テーマで、archive.php テンプレートと index.php を統合して後者のみにしました。また、言語リソースを Ktai Style 本体に移動して、functions.php, ja.po, ja.mo を削除しました。
  • Redportal テーマで、フロントページのみに適用される home.php テンプレートを新設しました。通常の home.php は2ページ目以降も適用されますが、本 home.php は、2ページ目以降は index.php を使用するよう設定しています。また、パスワード保護された投稿でのコメント閲覧・コメント投稿で、タイトルが表示されるようにしました。
  • HTML タグ前後の1バイトスペースは極力削除しないようにしました。従来、デザイン調整のために空白を入れても、表示時には削除されることがありました。
  • header.php テンプレートで、menu_pages.php テンプレートおよびフッターでページ一覧を表示するときに使う wp_list_pages(), ks_pages_menu() に与えるオプションを $ks_settings['list_pages'] で一括指定できるようにしました。ソート順 (sort_column)、除外するページ ID (exclude) などを指定すると便利でしょう。また、EZweb および SoftBank 3G に挿入する style 要素を CDATA セクションで囲むようにしました (XHTML 規格への準拠を向上)。
  • comments.php テンプレートで、コメント返信用テキスト (reply_text) に絵文字以外の HTML を含めている場合、パスワード保護した投稿でのコメント一覧表示が不自然になる不具合を修正しました (HTML タグを除去するようにしました)。
  • ks_in_network() が EZweb の IP アドレス削減に対応しました。
  • ks_previous_post_link(), ks_next_post_link() の出力が、それぞれ previous_post_link, next_post_link フィルターを通るようにしました。
  • ks_posts_nav_dropdown() を改良して、14 ページ以上ある場合はすべてのページをメニューに入れずに適宜間引くようにしました。これにより、index.php テンプレート等にも ks_posts_nav_dropdown() によるメニューを入れるようにしました (従来は archive.php テンプレートのみ)。
  • 次のテンプレートタグの引数を、配列やクエリー文字列でも可能としました (オプションも増えています): ks_pagenum(), ks_previous_post_link(), ks_next_post_link(), ks_previous_posts_link(), ks_next_posts_link(), ks_posts_nav_link(), ks_posts_navi_multi(), ks_posts_navi_dropdown(), ks_comments_post_link(), ks_back_to_post(), ks_get_recent_comments(), ks_category(), ks_tags(), ks_pages_menu()
  • 次のテンプレートタグを追加しました: ks_post_password_required(), ks_dropdown_archives()
ダウンロード: ktai_style171.zip (519.4 KB)
より新しい版が出ています。

今回は、主にバグフィックスと Ktai Style 独自テンプレートタグの改良です。Ktai Style 1.70 には投稿編集・ページ編集が正しくできないというバグがあって、実質的に管理機能が使えない状況でした……。附属テンプレートでは、改良された ks_posts_nav_dropdown() を用いたナビゲーションを採用しています。ページ数が多いときの移動がやりやすくなっていると思います。あと、テンプレートタグの改良により、携帯テーマの作成自由度が上がっています。ぜひとも自作に挑戦してみてください。

あと、style 要素を CDATA セクションに入れた影響で、FireMobileSimulator では、リンクの色指定が反映されないことがあります (FireMobileSimulator の将来バージョンで改善される予定です)。

なお、WordPress 2.3 以前用の 1.4x ブランチですが、今回はアップデートはありません。

2009-03-06
雨

WordPress の携帯表示を Smarty で行う実装

ゆりこ による 19:47:10 の投稿
カテゴリー: WordPressハック
タグ: , , , , ,

ガイドミーというサイトの管理者ブログで、「Smarty を使って WordPress の携帯表示を行う実装」を披露されているのを見かけました (ソースは未公開)。Ktai Style を使わない理由は「PC と携帯で URL が同一だと Google に嫌われる(と作者が思い込んでいる)」からだと思われます(*)。

ウェブログの DB に直接アクセスして携帯表示を作るのは、MT4iwp-ktai.php の手法ですね。はっきり言うと、第1世代の携帯対応のやり方です。Mobile Eye, Mobile Eye+, MobilePressNEO, Ktai Style は、WordPress のテンプレート機構を乗っ取るというやり方で、第2世代と呼べるでしょう。これは単に設計手法の新旧の違いであって、実装の優劣を述べているのではないことに注意してください。優劣があるとすれば、携帯向けサイトの URL が永続的であるかどうか、です (第1世代は携帯閲覧ツールの寿命に左右されるが、第2世代は左右されず永続的です)。

とはいえ、2009年になって、第1世代の実装方法を新規に行うというのは、大胆です ;-) まあ、Smarty を使っているという点を加味すると 1.5 世代と言えるでしょうし、単純な XSS 脆弱性を起こしにくくなるという面ではよい方法だと言えるでしょう。(WordPress のテンプレートタグを XSS を起こさないように使うのはちょっとコツがいる)

ただ、作者の PHP スキルが、「データ中に??などの文字(バイナリデータ?)が存在するのですが、よく分からないので全部削りました」とか「PHP5.2.6 で date("Y年n月j日 H:i"); の『年』が化けるのは PHP のバグ」と言っているレベルなのが不安です。正解は、「年」を Shift_JIS で書くと2バイト目が「N」なので、PHP 5.1.0 で導入された曜日フォーマット文字「N」と解釈されるため、「年」の1バイトが浮いてしまって化けるためなのです。バグというより、date() 関数の仕様ですね。date 関数で文字エンコーディングを指定できるようになるのがあるべき姿だと思いますが、PHP コードを Shift_JIS ではなく、EUC-JP や UTF-8 で書けば回避できるので、仕様変更の必然性は低いでしょう。PHP コードを Shift_JIS で書くこと自体、あまり好ましくないことですし。

あと、au, ソフトバンク向けにも <!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.1) 1.0//EN" "i-xhtml_4ja_10.dtd"> という DTD を出力したり、XHTML なのに <HR size="0.5" color="#ccccff"> とか <br> というマークアップがある (大文字だったり閉じタグがない) のもイマイチでしょうか……。今後はこのへんが修正されることに期待ですね。

(*) 作者は「事実だ」と書いていますが、ログから推測される事項はあくまで「意見」であって事実ではありません。いついつにどういうアクセスがあった/いついつの間のアクセス件数はxxだったというのが事実であって、減った/増えたは統計による推論となるからです。

[追記 5月9日] 作者の翌日のエントリーで「サイトを作る目的は多くの人に見てもらうため」と書いておられました。わたしの考えでは、それに必要なことは、まずウェブ標準/各社の規約に従うこと、次にクールな URI を守ること、そして訪問者の立場でデザイン (見栄え・設計両方の意味) をすることでしょう。Ktai Style はそのような方針で作られています。

他人のフレームワークに左右されたくないという下りは実は同感で、わたしの自作プラグインは、「他人のプラグインが信用できない/挙動が来に食わない」から作ったものがほとんどです。PEAR の Net_UserAgent_Mobileなどを使わないのもその理屈です。

2009-02-22
晴れ

携帯対応プラグイン Ktai Style バージョン 1.48, 1.70 リリース

Ktai Style 1.70 シングルポスト画面

絵文字対応の WordPress 携帯対応プラグイン「Ktai Style」の安定版バージョン 1.70 および、旧安定版 1.48 をリリースいたしました。今回のバージョンから、WordPress のバージョンごとにサポート対象の Ktai Style のバージョンが分かれます。バージョン 1.70 は WordPress 2.5 以降が対象で、旧安定版の 1.48 は WordPress 2.0〜2.3.3 が対象となります。

1.60→1.70 の変更点は次の通りです。

  • 外部サイト接続確認スクリプト redir.php を、外部からの悪用ができないようにしました。また、携帯サイトが見つかったときでも、元のリンク先とホストが異なる場合は中継画面を出すようにしました。(従来は異なるホストでも自動的にリダイレクトしていました) *** これはセキュリティー修正です***
  • WordPress 2.3.3 以前をサポート対象から外しました。動作するかもしれませんが、できれば Ktai Style 1.48 をご利用ください。EUC-JP の言語リソースの添付も中止しました。(UTF-8 の po ファイルから簡単に生成できます)
  • ニンテンドー Wii および DSi でも携帯表示になるようにしました。
  • コメント返信画面
    WordPress 2.7 以降で個別のコメントに返信するときは、コメントフォームの上に、親コメントの内容を表示するようにしました。
  • 携帯電話表示では DISQUS Comment System プラグインを抑制するようにしました。
  • WP Super Cache 0.6.8 以降の場合、手動で .htaccess を書換えなくて済むようにしました。
  • WordPress 2.7 で、コメント投稿時に端末識別情報を必須としているものの、端末識別情報が取得できなかった場合に、PHP のエラーが出るもしくは反応がない不具合を修正しました。
  • Flickr 画像が medium サイズ以外のとき、うまく表示されない不具合を修正しました。
  • Greenテーマ画面 Lovingテーマ画面 Monolithテーマ画面
    Compact テーマは Default テーマに統合しました (ただし、home.php を削除すれば Compact テーマ同等になります)。新たに、Green, Loving, Monolith の3テーマを添付しました。
  • Redportal テーマの多言語化が不十分だったのを修正しました。また、「前の NN 件」「次の NN 件」の言語リソースを Ktai Style 本体に移動しました。他のテーマでもこのローカライズ文字列が使えるようになります。
  • すべてのテーマで、フロントページを固定ページ (静的ページ) に設定しているとき、ブログページ (最新の投稿) へのリンクをフッター部分に追加するようにしました。
  • ?menu=links の URL および ks_list_bookmarks() で表示できるブログロール (リンク集) について、i-mode, EZweb, Yahoo! ケータイ、ディズニー・モバイルの場合、中継ページ経由のリンクになるようにしました (従来はすべて直接リンクになっていました)。
  • 管理パネル (ダッシュボード/コメント一覧) から、コメント返信できるようになりました。
  • Ktai Style 投稿一覧画面
    管理パネルの投稿一覧・ページ一覧に、それぞれの投稿についたコメントの一覧を見られるリンクを付与しました。
  • 投稿やページの本文で2行目以降の行頭にスラッシュ(/)がある場合、携帯閲覧時や携帯での投稿・ページ編集時に行頭のスラッシュが欠落してしまう不具合を修正しました。
  • 年別アーカイブ用のメニュー (menu_years.php) を追加しました。ここで年を選ぶと、その年の月別アーカイブが表示されます。
  • すべてのテーマで、下矢印を示すローカライズ文字列を &darr; に変更しました (従来は「v」という文字を下矢印にしていました)。また、functions.php にあったコメント関連の関数を comments.php に移動しました。
  • iモード端末の場合、big, small 要素が無効のため font size 要素もしくは span style=”font-size:bigger/smaller” に書換えるようにしました。逆に、EZweb 端末の場合、font size=”+1″, font size=”-1″ が効かないため、big, small 要素に書き換えるようにしました。
  • ks_use_appl_xhtml() テンプレートタグによる、HTML からインラインスタイルシートへの変換機能の精度を向上させました。font 要素が入れ子になっていても正常に動作するなどの改良が行なわれています。(Green, Loving, Monolith テーマが対象)
  • 携帯向けページ分割位置を示す start paging, end paging にパラメータを与えれば、分割時の罫線 (<hr />) をカスタマイズできるようにしました。
  • ks_term_name() が au の新機種に対応しました。
  • ks_in_network() がウィルコムの IP アドレス削減に対応しました。
  • ks_comments_link() で、コメント数を示すパラメーターが空文字列のとき、コメント数表示自体をしないようにしました。つまり、コメントがあるときのみコメント数を表示する/コメント停止中のときはその表示自体を隠すようなデザインが可能になります。
  • ks_comments_link(), ks_comments_post_link(), ks_back_to_post() でリンク用文字列を内部で HTML エスエープするのをやめました。このため、HTML を渡すとそのまま表示されます。適宜、テンプレート側で wp_specialchars() などを使って HTML エスケープしておいてください。
  • ks_switch_pc_view(), ks_switch_inline_images() のリンク色を指定できるようにしました。文字の背景色を暗い色にしている場合、リンク色を明るい色に変更して見やすくできます。
  • 次のテンプレートタグを廃止しました: ks_get_ordered_link() (ks_ordered_link() で代替できるようにしました)。
  • 次のテンプレートタグを追加しました: ks_ext_css_available(), ks_page_title(), ks_excerpt(), ks_cut_html(), ks_dropdown_categories(), ks_get_admin_user()
  • 次のテンプレートタグの引数を、配列やクエリー文字列でも可能としました (オプションも増えています): ks_content(), ks_login_link(), ks_ordered_link(), ks_comments_link()
  • external_link フィルターフック用に $icon 引数 (外部サイトを示す絵文字アイコン) を追加しました。絵文字の変更や除去に使えます。
  • split_page_navi フィルターは、sprint() 用のフォーマット文字列ではなく sprint() フォーマットした後の HTML 文字列を渡すようにしました。
  • 次の独自フィルターフックフィルターフックを追加しました: redir_error

1.47→1.48 の変更点は次の通りです。

  • 外部サイト接続確認スクリプト redir.php を、外部からの悪用ができないようにしました。また、携帯サイトが見つかったときでも、元のリンク先とホストが異なる場合は中継画面を出すようにしました。(従来は異なるホストでも自動的にリダイレクトしていました) *** これはセキュリティー修正です***
  • サポート対象を WordPress 2.3.3 までとしました。WordPress 2.5 以降では Ktai Style 1.61 以降をご利用ください。
  • ニンテンドー Wii および DSi でも携帯表示になるようにしました。
  • 携帯電話表示では DISQUS Comment System プラグインを抑制するようにしました。
  • 投稿やページの本文で2行目以降の行頭にスラッシュ(/)がある場合、携帯閲覧時や携帯での投稿・ページ編集時に行頭のスラッシュが欠落してしまう不具合を修正しました。
  • WordPress 2.0 において、コメント投稿時にコメント本文など必須項目を入力していない場合や、外部サイト接続確認を表示しようとすると PHP のエラーもしくは白紙画面になる不具合を修正しました。
  • WordPress 2.0 で <!--nextpage--> でページ分割させた場合、menu_links.php テンプレートを表示させたとき、または ks_list_bookmarks() を使ったとき、画面が途中で途切れる不具合を修正しました。
  • Redportal テーマを EUC-JP 環境でも文字化けしないようにしました。
  • ks_use_appl_xhtml() テンプレートタグによる、HTML からインラインスタイルシートへの変換機能の精度を向上させました。font 要素が入れ子になっていても正常に動作するなどの改良が行なわれています。(ただし、附属テーマは ks_use_appl_xhtml() を使用していません)
  • ks_term_name() が au の新機種に対応しました。
  • ks_in_network() がウィルコムの IP アドレス削減に対応しました。
  • 次のテンプレートタグを追加しました: ks_cookie_available(), ks_ext_css_available(), ks_get_next_num()
  • split_page_navi フィルターは、sprint() 用のフォーマット文字列ではなく sprint() フォーマットした後の HTML 文字列を渡すようにしました。
  • 次の独自フィルターフックフィルターフックを追加しました: redir_error
WordPress 2.5 以降用: ktai_style170.zip (517.3 KB)
より新しいバージョンが出ています。
WordPress 2.0〜2.3.3 用: ktai_style148.tar.bz2 (256.6 KB)
13:50ごろ、ドキュメントを直した版に差し替えました。

今回から、予告通り WordPress のバージョンによって、サポート対象の Ktai Style を分離しました。WordPress 2.3.3 以前を使っている人には申し訳ないですが、Ktai Style 1.48 をご利用頂くか、WordPress をバージョンアップして頂きますようお願いします。(追記: WordPress 2.3 以降は UTF-8 版しか存在しないため、Ktai Style 1.70 はEUC-JP の言語リソース添付を中止しました。EUC-JP を利用する数少ない例外は XOOPS モジュール版 WordPress の XPressEUC ぐらいだと思いますが、これの利用者の方には手動で ktai_style-ja_EUC.mo を作って頂きますようお願いします。Ktai Style 1.48 の方は EUC-JP の言語リソースがあります)

Ktai Style 1.48, 1.70 における大きなトピックは、外部サイト中継用スクリプト redir.php の悪用対策を打ったことです。Ktai Style 0.97 ごろから、外部サイトへのリンクに中継ページを使うようにしましたが、このときは必ず中継ページが出たため悪用する意味がありませんでした。しかし、バージョン 1.40 から相手先に携帯サイト URL を示す Mobile Link Discovery があるか確認し、あればそこに自動的にリダイレクトさせるようにしました。これによって、任意の Ktai Style 利用サイトにある redir.php を経由して悪意あるサイトにリダイレクトする URL を作ることができてしまいます。ただし、redir.php への接続は従来から携帯端末に限定してたため悪用は困難でした。今回、一定時間ごとに変化するランダムな文字列 (ノンス) をキーとして redir.php に与えることを必須としたため、悪用はさらに難しくなりました (コメントやトラックバック等で悪意あるサイト URL を送り込んで携帯サイトに表示させるしかない)。

ホストが違うときの中継ページ画面

また、携帯サイト URL を発見したときでも、ホスト名が元のサイトと異なる場合は「怪しい」と判断して中継ページを出すようにしました。世の中には、ネタフルのように、マトモなサイトであっても PC サイト (netafull.net) と携帯サイト (netafull.jp) のホスト名が違う場合がありますが、こういう事例は例外に近いでしょう。作者としては、PC サイトと携帯サイトの URL が同一であるべきと思います。

Yuriko.Net では、アクセスログを見る限り悪用された形跡はなさそうなのですが、さらなるセキュリティー向上をめざして、対策を打つことにしました。Ktai Style 附属テーマをそのまま使っている場合は、特に作業は不要です。自作テーマにおいて独自の redir.php テンプレートを作っている場合は、修正が必要です (附属ドキュメントや附属テーマを参照してください)。お手数をおかけしますが、よろしくお願いします。

Ktai Style 1.70 の開発におきましては、多くの方から頂いた改善案や不具合報告が助けになりました。まことにありがとうございます。今後も、お気軽に、質問・要望・不具合報告を寄せて頂ければ幸いです。