# Ktai Style マニュアル

[ はじめに | 改版履歴 | サイト設定とテンプレートの改造 | ウェブログ管理機能 | よくある質問と答え ]

## はじめに

プラグイン配布サイト: http://wppluginsj.sourceforge.jp/ktai_style/

※以前からのユーザーさんは、少なくとも「↓以前のバージョンからの更新方法」と「改版履歴」には目を通しておいてください。

### 概要

Ktai Style は、あなたの WordPress ウェブログを日本の携帯電話対応 (5キャリアおよびスマートフォン対応) にするプラグインです。WordPress + Ktai Style で、携帯ブログが構築できます。

- 携帯電話で閲覧すると軽量化したサイト表示を行います。(フロントページのみならず、アーカイブページ、個別エントリーの URI も対象)
- ページ容量が大きい場合、端末に応じてページ分割を行います (5KB〜50KB ごと)。
- 要所要所で、携帯電話に応じた絵文字を使用しています (数字・矢印・時計・顔など)。
- コメントや投稿本文に絵文字が使えます (設定変更が必要)。携帯電話での閲覧時は各社に応じた絵文字に変換し、PC やスマートフォンでの閲覧時はテキストに置換して表示します。
- 記事中の画像は、縮小してインライン表示するか (サーバー上もしくは Flickr の画像で 3G 端末等の場合)、画像へのリンクに変換します (それ以外の場合)。
- 投稿で PNG 画像を使った場合、i-mode 向けに GIF 画像に変換して表示します。GIF 画像を使った場合、ソフトバンク PDC 向けに PNG 画像に変換して表示します。
- i-mode, EZweb, Yahoo! ケータイ、ディズニー・モバイルの場合、外部サイトへのリンクは中継ページを出します。ウィルコム、イー・モバイル、その他の端末では直接リンクします。ただし、リンク先サイトにモバイル版ページがあると判断できる場合、中継ページを出さずに直接ジャンプします。
- 複数の携帯テーマをインストールして簡単に切り替えできます。携帯テーマは WordPress のテンプレート構造に準拠していて、容易に制作できます。
- 簡単なウェブログ管理機能 (新規投稿・投稿編集・コメント管理など) があります。
- コメント投稿時にログインできます。登録ユーザーのみコメント可能な設定でも携帯電話からコメント可能です。
- 画像変換、PCサイト変換について、デフォルトでは外部サービスを極力利用していません。それらのサービスの信頼性・継続性に左右されることなく、安定して運用できます。

動作サンプルとしては、作者のサイト「Yuriko.Net」または「Yuriko.Net 旅行記」をご覧ください。ただし、開発中のバージョンを使っていたり、カスタマイズを行なっているため、標準機能と動作が異なります。その他の採用サイトも参考にしてみてください。

- WordPress ME サポート (Monolith テーマ)
- WordBench 長野 (Default テーマ)
- J2 関東 (Green テーマ; アイコンは変更)

「よくある質問と答え」を用意しました。当ドキュメントと合わせてご覧ください。

### 対応環境

- WordPress 2.8 以降。携帯電話向け表示機能は 3.2.1 まで対応していますが、サイト管理機能は WordPress 3.0.x までの対応です。
- WordPress 2.0〜2.3.3 は Ktai Style 1.49 を、WordPress 2.5.1〜2.7.1 は Ktai Style 1.82 をご利用ください。
- PHP 5.0 以降。PHP 4 では動きません!!
  なお、動作確認は PHP 5.2.x, PHP 5.3 で行なっていますので、5.0.x, 5.1.x では動かないかもしません。残念ながら PHP 4 への対応予定はありません (サーバー屋さんに PHP5 へのアップグレードを依頼してください)。
- 対応している携帯電話サービスは、以下の通りです。
  - i-mode (NTT ドコモの mova, FOMA)
  - EZweb (KDDI, 沖縄セルラー)
  - Yahoo!ケータイ (ソフトバンクの PDC, 3G)
  - ディズニー・モバイル
  - ウィルコムのコンテンツサービス (ウィルコムの AIR-EDGE PHONE, SIM STYLE)
  - イー・モバイルの EMnet (モバイルブラウザモードのみ)
  - iPhone, iPod touch (デフォルトでは Ktai Style が適用されません。設定変更が必要)
  - Nokia 端末
  - BlackBerry 端末
  - Windows Mobile スマートフォン
    - W-ZERO3 シリーズ、ドコモ htcZ、ソフトバンク X シリーズ、EM・ONE など
  - Palm OS ハンドヘルド
  - シャープ Zaurus シリーズ
  - PlayStation Portable (PSP), Sony mylo
  - ニンテンドー DS シリーズおよび、ニンテンドー Wii
  - mixi モバイルからの外部ブログ接続 (mixi 日記のかわりに WordPress ウェブログを設定したとき、PC 向け表示ではなく Ktai Style による表示が mixi によって変換されます)
- Windows Mobile スマートフォン、PSP, ニンテンドー DS など (「その他」端末) の場合は、画面最下部に「PC 表示にする」リンクが出て、PC で見たときの表示に切り替え可能です。
- フルブラウザ・PC サイトビューアー・PC サイトブラウザ・EMnet の「オープンブラウザ」・Windows Mobile 向け Opera の「デスクトップとして認識する」設定などは、PC 向けと認識し、携帯電話向け出力になりません。

### 設置方法

1. プラグインをダウンロードして展開し、ktai-style フォルダーごとサーバーのプラグインディレクトリー (wp-content/plugins/) に転送します。
   ※ただし、README などの txt, html ファイル、DOCUMENTS ディレクトリー、および screenshot-NN.png は転送しなくて構いません。
   ** 重要 **
   ウェブログ管理機能を使わない場合は admin フォルダを転送しないでください。
2. WordPress の管理パネルより Ktai Style プラグインを有効にします。
3. 好みに応じて、サイト管理画面の携帯表示でテーマやオプションを変更します。たいていはデフォルトのままで構いません。
4. 本プラグインの更新は WordPress の標準機能で可能となりました。「JSeries Notifier」は不要です。

#### wp-content もしくは wp-content/plugins ディレクトリーを標準の位置以外に移設する場合

WordPress 2.6 以降で可能になった、wp-content ディレクトリーや wp-content/plugins ディレクトリーを標準の位置以外に移設する場合は、以下の手順で行なってください。

1. プラグインのインストール時、ktai-style ディレクトリーにウェブサーバーから書き込み可能な権限を与えておきます。つまり、パーミッションを 757 や 777 にしておきます。
2. プラグインを有効化します。このとき、ktai_style ディレクトリー直下に wp-load-conf.php ファイルが自動的に作られれば、設定 OK です。
3. 作られない場合は、手動で ktai_style/wp-load.php を編集してください。
   20行目にある `$wp_root` 変数を変更して、WordPress インストールディレクトリーへの絶対パスを示すようにしてください。
   例: WordPress ディレクトリーが /home/foo/public_html/wp-core/ で、wp-content ディレクトリーが /home/foo/public_html/wp-content/ の場合
     `$wp_root = dirname(dirname(dirname(dirname(__FILE__)))) . '/wp-core/';` とします。

#### WP Suer Cache と併用する場合

gDonncha 氏による WP Super Cache を併用した場合、そのままではさまざまな不具合が発生します (携帯電話に PC 向けのキャッシュされた内容を出力する／携帯電話出力が文字化けする etc)。このため、携帯電話閲覧時はキャッシュプラグインを動作させないようなアドオンを用意しています。以下のようにして組み込んでください。(WP-Cache の場合は以下の「WP-Cache と併用する場合」を参照のこと)

1. ktai_style/patch-supercache-ktaistyle.php ファイルを WP Super Cache 配下の plugins ディレクトリーに配置します。通常は wp-content/plugins/wp-super-cache/plugins/ というパスです。
2. Ktai Style および WP Super Cache を有効にします。
3. WP Super Cache の設定画面で、一番下の方にある「Ktai Style Support」を Enabled にします。
4. 引き続いて、WP Super Cache の設定画面で Mobile Device Support をオンにします。もしくは、Mobile Device Support をオフにして、Mod Rewrite Rules を設定します。以下の2行のコードが含まれているのを確認してから「Update Mod_Rewrite Rules」ボタンを押してください。

       RewriteCond %{HTTP_USER_AGENT} !^(DoCoMo/|J-PHONE/|J-EMULATOR/|Vodafone/|MOT(EMULATOR)?-|SoftBank/|[VS]emulator/|KDDI-|UP\.Browser|emobile/|Huawei/|IAC/|Nokia|mixi-mobile-converter/)
       RewriteCond %{HTTP_USER_AGENT} !(DDIPOCKET;|WILLCOM;|Opera\ Mini|Opera\ Mobi|PalmOS|Windows\ CE;|PDA;\ SL-|PlayStation\ Portable;|SONY/COM|Nitro|Nintendo)

5. iPhone, iPod, Android にも Ktai Style を適用させる場合は、以下の行を上の2行に追加してください。

       RewriteCond %{HTTP_USER_AGENT} !(iPhone;|iPod;|Android)

6. ログアウト状態、かつ、クッキーを削除した状態の PC で閲覧して、リロードしたとき、XHTML ソースの末尾に 「Cached page generated by WP-Super-Cach」の表示があることを確認する WP Super Cache の動作確認)
7. 携帯電話で同じページを閲覧して、携帯向け表示になっていることを確認します。PC 表示だったり文字化けしていたら失敗です (PC 向けブラウザーでユーザーエージェント偽装しての確認だとうまくいかないことがあります)。
8. 再度 PC で同じページを見て、携帯向け表示になってないことを確認します (携帯ページがキャッシュされてないかの確認)。

#### WP-Cache と併用する場合

gallir 氏による WP-Cache プラグインを併用する場合は以下のようにして組み込んでください。(WP Super Cache の場合は上の「WP Super Cache と併用する場合」を参照のこと)

1. WP-Cache をこれからインストールする場合は、wp-cache-config-sample.php をコピーして wp-cache-config.php ファイルを作ります。
2. wp-cache-config.php の19行目付近、すなわち `$cache_rejected_user_agent` を設定する直後に、以下のコードを追加します。(追加場所がよく分からなければ、末尾の ?> の直前で構いません)

       if (file_exists(ABSPATH. 'wp-content/plugins/ktai-style/patches/wpcache.php')) {
               include ABSPATH. 'wp-content/plugins/ktai-style/patches/wpcache.php';
       }

   ※wp-content/ ディレクトリーもしくは plugins ディレクトリーを移動させている場合は、pache-wpcache.php へのパスを適切に変更してください。
3. wp-cache-config.php ファイルを wp-content/ 直下に配置し、キャッシュプラグインを有効にします。
4. ログアウト状態、かつ、クッキーを削除した状態の PC で閲覧して、リロードしたとき、XHTML ソースの末尾に 「Cached page served by WP-Cache」の表示があることを確認する (WP-Cache の動作確認)
5. 携帯電話で同じページを閲覧して、携帯向け表示になっていることを確認します。PC 表示だったり文字化けしていたら失敗です (PC 向けブラウザーでユーザーエージェント偽装しての確認だとうまくいかないことがあります)。
6. 再度 PC で同じページを見て、携帯向け表示になってないことを確認します (携帯ページがキャッシュされてないかの確認)。

### 以前のバージョンからの更新方法

1. まず、プラグインを無効にしてください。
2. サーバー上で自作テーマ／古いテーマの修正が必要です。
   - バージョン 2.0.3 で Classic, Default テーマの footer.php を修正しました (`ks_ordered_link()` の後ろにあった </a> を削除)。これらのテーマを元に自作テーマを作成した場合、同様の修正を行なってください。
   - バージョン 2.0.0 で、以下の修正を行いました。(1.82 以前の) ktai_style/themes/ 配下のテーマを直接改造している場合は、まず wp-content/ktai-themes/ ディレクトリーを作成してここに移動しておいてください。
     - `get_stylesheet(), get_template(), load_theme_textdomain()` 等の結果を携帯テーマに振り替える処理をやめました。
     - 携帯ログインの URL を ktai_style/login.php から ktai-style/admin/login.php に変更しました。`ks_get_login_url()` を使えば正しい携帯ログイン URL が取得できます。
     - `ks_wp_head()` にて、iPhone 用 viewport 設定 meta 要素の出力、EZweb や SoftBank 3G 端末向けの p 要素マージン設定の出力を行うようにしました。
     これに伴ない、以下の書き換えが必要です。

     旧 | 新
     `load_theme_textdomain('DOMAIN')` | `load_theme_textdomain('DOMAIN', dirname(__FILE__))`
     `get_stylesheet(), get_template()` | `ks_get_theme(KTAI_NOT_ECHO)`
     `ks_plugin_url() . 'login.php'` | `ks_get_login_url(KTAI_NOT_ECHO)`
     `ks_plugin_url() . 'login.php&redirect_to=' . urlencode(ks_comments_post_url())` | `ks_get_login_url(KTAI_NOT_ECHO, ks_comments_post_url())`
     `ks_siteurl() . 'wp-login.php'` | `ks_get_login_url()`
     `<?php if (is_ktai('type') == 'TouchPhone') { ?> <meta name="viewport" content="width=device-width,initial-scale=1.0;" /> <?php } ?>` | (削除)
     `if (is_ktai() == 'KDDI') { ?> <style>p {margin:0.75em 0;}</style> <?php } elseif (is_ktai() == 'SoftBank') { ?> <style>p {margin:0.5em 0;}</style> <php }` | (削除)

     ログイン状態を維持しながら携帯サイトを閲覧している場合に編集リンクが出すことも可能です。編集リンク (`edit_post_link(), edit_comment_link()`) をどこに入れるかはテーマ作者の自由にできるため、同梱のテーマを参考に入れてみてください。
   - バージョン 1.81 で redir.php テンプレートの仕様が変わりました (Classic, Green, Monolith テーマをベースとした場合に存在するテンプレート)。グローバルなオブジェクト `$Redir` を廃止して、`ks_is_redir(), ks_redir_has(), ks_redir_get(), ks_redir_same_host()` テンプレートを導入しました。以下の対比表を参考に書き換えてください。不要になった `global $Redir;` も適宜削除してください。また、hedir.php テンプレート以外に header.php テンプレートにも `isset($Redir)` という記述があるため、これを `ks_is_redir()` に修正してください。

     旧 | 新
     `$Redir->url` | `ks_redir_get('url')`
     `$Redir->mobile_url` | `ks_redir_get('mobile_url')`
     `$Redir->full_url` | `ks_redir_get('full_url')`
     `$Redir->same_host` | `ks_redir_same_host()`
     `isset($Redir)` | `ks_is_redir()`
     `isset($Redir->full_url)` | `ks_redir_has('full_url')`
     `empty($Redir->mobile_url)` | `! ks_redir_has('mobile_url')`

   - バージョン 1.80 で iPhone/Androoid 向けに viewport 設定が入りました。header.php の4行目 (`<meta http-equiv="Content-Type"` の次の行) に以下のコードを入れてください。

         <?php if (is_ktai('type') == 'TouchPhone') { ?>
         <meta name="viewport" content="width=device-width,initial-scale=1.0;" />
         <?php } ?>

   - バージョン 1.74 で、comments.php が変更されました。`$user_ID` が使われている部分をすべて `is_user_logged_in()` に変更してください (4〜6か所あります)。
   - バージョン 1.73 で、header.php が変更されました。以下の3行を、title 要素を出力している個所の直前に入れてください。

         <?php if ( ks_is_comment_post() || isset($Redir) ) { ?>
         <meta name="robots" content="noindex,nofollow" />
         <?php } ?>

   - バージョン 1.70 で Compact テーマは Default テーマと統合されました。Default テーマにある home.php を削除すれば、Compact テーマとほぼ同等の動作になります (footer.php の挙動が少し異なります)。
   - バージョン 0.99〜1.47, 1.60 の comments.php は、WordPress 2.7 でのコメント投稿時に携帯端末情報が送信されなかったとき、PHP のエラーが表示されたり反応がなくなったりすることがあります。独自のテーマを利用している場合、comments.php の以下のコードを探して直してください (Default テーマでは91行付近です)。なお、テーマによって `implode()` で挟む文字列は異なります。

         echo implode("<br />", wp_specialchars(explode("\n", $ks_commentdata['message'])));

     ↓

         echo implode("<br />", array_map('wp_specialchars', explode("\n", $ks_commentdata['message'])));

   - バージョン 1.70 で header.php, redir.php テンプレートの仕様が一部変更になりました。ジャンプ先の URL が `$full_url` というグローバル変数ではなく `$Redir` というオブジェクトで渡されます。Classic, Green, Monolith テーマを参考に、使い方を調べてみてください。
   - バージョン 1.70 より古い場合、テーマのローカライズ文字列 (`_e(), __()` 関数を使っている部分) が変更されています。そのままでは英語表示になってしまうため、附属テーマを参考に修正してください。コメントの入れ子に対応したい場合も、附属テーマを参考に修正してみてください。よく分からなければ、附属テーマを複製して改造し直した方が早いかもしれません。
   - バージョン 1.46 以前において、themes/classic/functions.php にある `ks_convert_kana()` 関数を自作テーマにコピーしている場合、この関数を消去してください。`ks_convert_kana()` 関数は Ktai Style 本体に組み込まれました。
   - バージョン 1.36 以前を使っている場合、ktai_style-ja.po, ktai_style-ja.mo, ktai_style-ja_UTF.mo, ktai_style-ja_EUC.po, ktai_style-ja_EUC.mo, emobile.php, ezweb.php, i-mode.php, services.php, softbank.php, willcom.php を削除してください。これらは lang および operators フォルダーに移動されたため、ktai_style ディレクトリー直下にあるファイルは使われないためです。
   - バージョン 1.20 以前で、header.php で `wp_head()` を、footer.php で `wp_footer()` を有効にしている場合、それぞれ `ks_wp_head(), ks_wp_footer()` に変更すると、より携帯電話に適した動作になります。
   - バージョン 1.11 以前で自作テーマを使っている場合、絵文字テンプレートタグで alt 属性が抜けている箇所に空の alt 文字列を補完してください。
     `<img localsrc="XXXX" alt="" />`
     従来は alt 属性がない場合、スマートフォン等で閲覧したとき何も置換しませんでしたが、バージョン 1.20 からは既定の代替文字列に置換されてしまうためです。`alt=""` と書けば従来通り置換されません。
   - バージョン 1.01 以前で自作テーマを使っている場合、footer.php 等に `<?php ks_switch_inline_images(); ?>` を追加してください(default テーマの footer.php などを参考にしてください)。さもないと、「画像を表示する／リンクに変換」のメニューが表示されません。
   - バージョン 0.97〜0.99 で自作テーマを使っている場合、default テーマから style.css をコピーして自作テーマのディレクトリーに入れてください。できれば、記載内容を適宜修正してください (修正は必須ではありません)。style.css がない場合、携帯テーマとして認識されません。
   - バージョン 0.96 までのテンプレート (templates フォルダー以下のファイル) をそのまま利用している場合、サーバーの templates フォルダーを削除してください。
   - バージョン 0.96 までのテンプレートを改造している場合は、サーバー上の templates ディレクトリーを適当な名前 (old など) に変更し、themes ディレクトリーの配下に移動してください。また、default テーマから style.css をコピーしておいてください (上記と同じ要領)。
3. WP Super Cache を利用している場合、バージョン 1.81 で WP Super Cache への対応方法が変更になりました。wp-content/wp-cache-config.php の修正は不要になったので、該当する3行は削除してください。それから、上記の「WP Super Cache と併用する場合」を読んで、その手順に従ってください。
4. サーバーにファイルを転送します。(バージョン 0.97 以降で) 自作テーマを利用している場合、サーバー上の themes ディレクトリーにある自作テーマを消さないよう注意してください。(WordPress 本体をアップグレードするとき wp-content の中身を消さないようにするのと同じ要領です)
5. プラグインを有効にしてください。プラグインを一度無効にしてから有効にしないと、管理画面へのログインができません (ログインセッションを生成できない、というエラーになります)。
6. 必要に応じて管理画面でテーマを選択します。(自作テンプレートを ktai-themes ディレクトリーに移動した場合など)
7. 環境設定の確認をしてください。1.60 からは、「去年以前の日時」「今年の日時」に時刻フォーマットも含める必要があります。したがって、そのままでは、「去年以前の日時」「今年の日時」を表示するとき、時刻が出なくなります。従来と同じ出力にしたいならば、それぞれ「Y-m-d H:i」ないし「n/j H:i」という指定に直してください。
8. バージョン 1.82 以前からのアップグレードの場合、「ktai_style」というディレクトリー名の旧プラグインが残ってしまいますので、これは FTP/SFTP ツールで手動で削除してください。WordPress の削除機能を使うとオプション値が消えてしまいます。

### プラグインの撤去

プラグインの使用を中止して撤去するに、プラグインを無効にし、WordPress のプラグイン管理パネルでプラグインの「削除」を行なってください。これがうまく動かない場合は以下の手順に従ってください。

1. 管理画面の「携帯表示」→「オプションの削除」で、一番下にある「オプション値をデフォルトに戻す」をクリックします。
2. プラグインを無効にします。これにより、セッション管理用テーブルが削除されます。
3. FTP ツール等で、wp-content/plugins から ktai-style ディレクトリーを丸ごと削除します。wp-content/ktai-themes ディレクトリーがあれば、これも削除します。
4. wp-content/uploads ディレクトリー配下などにある、携帯電話向けサムネール (*****.ktai.jpg などのファイル名の画像) は残ってしまいます。そのままでもウェブログの表示に影響はありませんが、気になる場合は、FTP ツールで削除するか、シェルログインして find コマンド等で削除してください。

       $ cd wp-content/uploads
       $ find . -name '*.ktai.jpg' -or -name '*.ktai.png' -or -name '*.ktai.gif' -exec rm {} \;

### 携帯サイトの調整

携帯サイトの見た目は、PC での管理画面による設定、およびテンプレートの改造により、お好みに調整できます。管理画面では以下の設定が可能です (デフォルトテーマ以外では無効の場合があります)。詳細は「サイト設定およびテンプレートの改造について」を参照してください。

- 使用するテーマの切り替え
- コメント欄や投稿本文に絵文字の入力を許可するか否かの選択
- コメントとトラックバック・ピンバックを混在するか分離するかの選択
- 中継ページを使わず直接リンクを張る外部サイト
- コメント投稿時にコメント投稿者の端末識別情報を要求するか不要とするか
- 文字色 (日付、投稿者名、コメント種別、PC 向け外部サイトのリンク文字)
- 日付・時刻の書式

なお、PC 向けテーマと携帯テーマは連動していませんので、PC 向けテーマで利用している機能 (ウィジェットやブログパーツ等) は原則として使えません。携帯テーマのテンプレートをカスタマイズすれば、ウィジェットの機能を再現できるかもしれません (できないこともあります)。

### 機能詳細

- ウェブログ管理機能については「ウェブログ管理機能について」をご覧ください。
- 文字コードは Shift_JIS に変換しています。古い端末 (PDC 端末等) でも表示できるため、絵文字表示を行うためとパケット節約のためです (UTF-8 に比べて2〜3割減)。
- del 要素で囲まれた部分は削除されます。PC では通常取り消し線が付きますが、携帯端末の多くは取り消し線に対応しておらず、通常表示と区別が付かなくなるためです。
- 1ページに表示される記事数は、PC 向けサイトと同じ (各種設定→表示設定の「ブログページ」の設定値と同じ) になります。したがって、ページ番号付きの URL (http://blog.example.jp/page/3/ のような URL) でも、PC と携帯電話で同じ内容が見られます。この動作を維持するため、携帯電話だけ記事数を減らす機能を付ける予定はありません。
- 記事中の画像は、縮小してインライン表示するか、画像へのリンクに変換します。縮小してインライン表示するのは、サーバー配下もしくは Flickr に登録した画像で、今ドキの携帯 (FOMA, EZweb WAP2.0, ソフトバンク 3G, イー・モバイル音声端末、ウィルコム, 「その他」端末) で閲覧した場合です。それ以外の場合 (外部サイトの画像や古い世代の電話での閲覧時) は、リンクとなります。古い端末でサーバー配下の画像へのリンクになる場合、リンク先画像のサイズが大きくて表示できないと推測されれば、より小さい画像へのリンクに差し替えます。Flickr 以外の外部サイトの画像の場合、縮小画像を作成せず無条件にリンクとなります。
- 画像をインライン表示している場合、画面下部のメニューで画像をリンクに変換するか (従来通りの表示)、インライン表示に戻したりできます。携帯電話向けのページ分割がされた場合、分割前のページ全体のとこかにインライン画像があれば、分割後のすべてのページで切り替えメニューが出ます。したがって、分割後のページで画像が存在しないのに切り替えメニューが出ることがあります。なお、古い端末の場合は画像をインライン表示できないため、切り替えメニューは出ません。
- Ktai Style が作成する縮小画像は、****.ktai.jpg 等のファイル名で、オリジナル画像と同じディレクトリーに保存されます (以後の閲覧で再利用)。縮小サイズは、長辺側が 96 ピクセルで決め打ちです。WordPress がそのディレクトリーに書き込み権限を持たない場合、縮小画像が作成できないため、インライン画像は表示されずリンクになります。
- 元画像が PNG (または GIF) 画像の場合、携帯電話用サムネールは PNG, GIF 両方を作成します (****.ktai.png, *****.ktai.gif)。また、元画像と同じサイズの GIF (または PNG) 画像も作成されます。「PNG, GIF 自動切り替え機能」により、i-mode 端末では GIF 画像を表示／ソフトバンク PDC 端末では PNG 画像を表示するため、PNG, GIF 画像をシームレスに扱えます。なお、JPEG 画像が表示できない端末については考慮していません。
- サムネールに対して元画像へのリンクを張っている場合、サムネールの後に元画像へのリンクを追加します (ファイルサイズも表示)。画像サイズが大きい場合は、リンクにならず元画像のファイルサイズだけ表示します。
- シンボリックリンク等で、WordPress インストールディレクトリー配下でないディレクトリーを呼び出して画像を使っている場合も、できる限り同一サーバー上とみなします。例えば、http://example.jp/blog/ に WordPress をインストールしていて、http://example.jp/photos/ に画像を入れている場合でも、サムネールを作成したり、「元画像(xxKB)」のようなリンクになります (サーバーの設定やファイル構成によっては、同一サーバーと認識されない場合があります)。
- 画像にウェブサイトへのリンクを張っている場合 (ソーシャルブックマークへの登録ボタン等)、画像へのリンクの後ろに、ウェブサイトへのリンクを追加します。
- ドコモ、au、ソフトバンク、ウィルコム、イー・モバイルの場合、プラグイン用画像はリンクにせず、alt 文字列をそのまま表示します。スマートフォン等の「その他」端末ではプラグイン画像をそのまま表示します。Ultimate Tag Warrior のアイコン、wp-tegaki の TrueType 画像、FireStatsのブラウザーアイコンなどが対象です。なお、FireStats の国旗アイコンはできるだけ携帯絵文字の国旗にします、
- 携帯電話に画像を縮小させずそのまま見せたい場合は、img 要素に
  `class="ktai"`
  という属性を追加してください (詳細は「テンプレートで画像を使う」を参照)。
- 携帯端末でコメントや投稿本文に絵文字を入力した場合、`<img localsrc="999" />` というフォーマットに置換してデータベースに保存されます。絵文字番号は下記の通りになります。

  サービス | 値 | 説明
  --- | --- | ---
  EZweb | 1〜822 | 10進数で EZweb 絵文字番号にそのまま対応
  SoftBank | se001〜se53e | s を除いた部分は16進数4ケタで、ソフトバンク絵文字の UNICODE 値に対応。
  i-mode | d001〜d276 | d を除いた部分は10進数。1〜176 は基本絵文字、201〜276 は拡張絵文字 1〜76 に対応。
  WILLCOM | d001〜d276 | i-mode と同じ
  wf040〜wf15f | w を除いた部分は16進数4ケタで、ウィルコム絵文字の Shift_JIS コードに対応
  EMnet | d001〜d276 | i-mode と同じ
  e253〜e278 | e を除いた部分は10進数で、イー・モバイル絵文字 253〜278 に対応。

  Ktai Style で定義されていない文字コードの絵文字 (新しく追加された絵文字など) の場合、`<img localsrc="ZZ" alt="[0xHHHH または ESC$XnnnSI]" />` というフォーマットになります。ZZ はキャリア識別文字 (ez: EZweb, d: i-mode, s: SoftBank, w:WILLCOM, e: EMnet) で、0xHHHH は 16進数の ShiftJIS コード、ESC$XnnnSI はソフトバンクのウェブコード (X は 3バイト目で G,E,F,O,P,Q のいずれか、nnn は4バイト目を10進数にしたもの) です。
- 外部サイトへのリンクは以下の通りに処理されます。

  ドコモ FOMA EZweb (WAP2.0) | 中継ページ経由リンクに変換。フルブラウザ／PC サイトビューアーでの閲覧リンクも併記。
  ソフトバンク ディズニー・モバイル | 中継ページ経由リンクに変換。手動でPCサイトブラウザに切り替えてください。
  ドコモ mova EZweb (HDML) | 中継ページ経由リンクに変換
  ウィルコム イー・モバイル それ以外 | 直接リンク

  ただし、以下のブログサービスへのリンクは、中継ページを出さずに直接リンクします。リンクの前に PC アイコンや [PC向け] 表示も出ません。
  - PC 版と携帯版の URL が同じもの: FC2 ブログ、ヤプログ、teacup.ブログ AutoPage、JUGEM、Seesaaブログ、goo ブログ、LOVELOG, au one ブログ, so-net ブログ、NetLaputaブログ、VOX、楽天アフィリエイト、ぷららブローチ
  - PC 版 URL から携帯版 URL にリダイレクトされるもの: はてなダイアリー, livedoor ブログ, ココログ, ウェブリブログ、エキサイトブログ、ドリコムブログ、アメーバブログ (携帯ネットワーク以外およびイー・モバイル音声端末未対応)、Windows Live Spaces(ウィルコム非対応ブログ)、楽天ブログ(ウィルコム非対応ブログ)、忍者ブログ(blog.shinobi.jp ドメインのみ認識、ウィルコム非対応ブログ)
  - (参考) PC／携帯両対応しているものの、URL が分離されていてリンク差し替えできないサービス(中継ページが出ます): Yahoo! ブログ、阪神ナウ・クチログ
  - その他の場合でも、a 要素に class="ktai" という属性を追加したリンク、もしくは、「携帯表示」設定の「直接リンクを張るサイト」にリストアップしたサイトは、中継ページを出さずに直接リンクします。リンク先が、同一 URL で PC／携帯両対応している場合に、いずれかの指定をすると便利です。
  - いずれにも該当しない場合、中継ページを出す直前でリンク先にアクセスし、Mobile Link Discovery を埋め込んでいるか確認します。もしあれば、その URL に直接ジャンプします。Ktai Style や MT4i などを使っている場合などが該当します。この場合、中継ページを出すタイミングで相手にアクセスするため、相手先には、Ktai Style (エージェント名は WordPress) によるアクセスと閲覧者によるアクセスの両方がログされることに注意してください。
  - リンク先の反応が遅く、Mobile Link Discovery の確認をするとタイムアウトすることがある場合、a 要素に class="pconly" を入れると Mobile Link Discovery のチェックをせずに、いきなり中継ページを出します。
- ページ分割サイズは端末に応じて自動調整されます。分割値は以下の通りです。

  ドコモ mova | 5000 バイト (約5KB)
  ドコモ FOMA | 20000 バイト (約20KB)
  EZweb (HDML) | 7500 バイト (約7.5KB)
  EZweb (WAP2.0) | 20000 バイト (約20KB)
  ソフトバンク PDC | 6000 バイト (約6KB)
  ソフトバンク 3G ディズニー・モバイル | 20000 バイト (約20KB)
  ウィルコム イー・モバイル | 20000 バイト (約20KB)
  その他 | 50000 バイト (約50KB)

- 画像表示可能なサイズ (キャッシュサイズ) は、ユーザーエージェント文字列などより自動判別されます。3G 端末の場合 100KB〜128KB 程度、スマートフォンの場合は 512KB となります。

### 制限事項

※管理機能の制限事項もお読みください。

- シンボリックリンクを利用して ktai-style ディレクトリー、wp-content ディレクトリー等を移動している場合、正常に動作しないことがあります。
- WordPress 2.7 以降で、「1 ページ当たり NN 個のコメントで複数ページに分割する」機能を使っている場合、コメント一覧ページでは、コメントとトラックバック・ピンバックは強制的に混在表示になり、分離表示はできません。これは、コメントのページ数がおかしくなるためです。
- 携帯電話向けページ分割した際、「画像を表示する／リンクに変換」の切り替えを行うと、分割位置が変化するため、現在見ている内容が前後の分割ページに移動することがあります。
- プラグインが提供する PNG, GIF 画像は、PNG, GIF 自動切り替え機能に対応するものの、PNG→GIF画像および GIF→PNG画像の自動生成には対応していません。あらかじめ PNG, GIF の両方の画像を生成しておいてください。
- 携帯電話の絵文字は、i モード拡張絵文字、EZweb type-D、ソフトバンクの拡張絵文字を一部利用していますので、古い端末だと表示されない場合があります。
- PC、スマートフォン向けの携帯絵文字は完全には収録していません。このため、PC 等で絵文字を含むコメントや投稿を見たときは、[ボウリング] や (#□#) などの代替文字に変換されることがあります。
- ソフトバンク 3G の一部の機種では絵文字入力に対応していません。ただし、対象となる機種は非常に少なく、Shift_JIS 非対応端末など、UTF-8 で絵文字を送出してしまう端末のみです。(ノキア製などが該当)
- フラグメント識別子 (#comment-99 のようなもの) を使って、ページ内リンクや他ページへのリンクをしている場合、リンク先の位置が携帯端末向けページ分割によって2ページ目以降に回された場合でも、その分割ページにはリンクできません。携帯電話で見ることを想定したコンテンツでは、ページサイズを少な目にして、フラグメント識別子は極力使わないことをおすすめします。
- UTF-8 で保存されたコンテンツを Shift_JIS に変換して表示しているため、投稿本文で Shift_JIS に存在しない文字を使っている場合、携帯閲覧時に欠落したり文字化けする可能性があります (温泉マークやはしご高など)。
- コメント投稿時にログインする場合、コメントフォーム右上にある「ログインしてコメントする」のリンクを使ってください。ページ下にある「ログイン」の場合、管理画面に入ってしまい、ウェブログ画面に移るとログイン状態が解除されてしまいます。また、ログイン直後にコメント投稿せず、他のリンク (「記事に戻る」やページ下部のメニューなど) を辿った場合も、ログイン状態が解除されてしまいます。「送信する」ボタン以外は使わないよう、ご注意ください。
- パスワード保護された投稿でコメント投稿したとき、投稿後に記事またはコメントを見るには、再度パスワード入力が必要となります。
- XHTML Basic (携帯電話向け XHTML) では不要な要素・属性をできるだけ除去していますが、テーブルタグなど、一部端末で対応していない要素も出力してしまいます。
- 携帯電話からの新規投稿やコメント投稿で「〜」(波ダッシュ) を含む文字を使った場合、Unicode コード U+301C の波ダッシュ「〜」としてデータベースに保存します。Macintosh や Linux は通常この波ダッシュを使うため問題ありませんが、Windows では、全角チルダ U+FF5E「～」を多用しており、複数の波形文字が混ざってしまいます。これは仕様ですので、ご了承ください。気になる場合は、全角チルダを波ダッシュに矯正する拙作プラグイン「Force Wave Dash」をご利用ください。
- キーワードタグに、全角チルダ U+FF5E「～」を含む文字列を使用していた場合 (Windows で波形の文字を使うとこの文字になります)、携帯管理画面で投稿編集すると、波ダッシュ U+301C「〜」として保存してします。このため、編集前とは別のタグになってしまいます。キーワードタグで全角チルダを使わないようにしてください。(Force Wave Dash はキーワードタグへの対応は完全ではなく、全角チルダを駆逐できません)
- WordPress MU で、WPMU Plugin Control (プラグインを一括管理するプラグイン) を使って Ktai Style を有効・無効にしたときは、携帯ログイン時のセッション管理テーブルの作成・破棄ができません。これは、WPMU Plugin Control がプラグインの activate/deactivate フックを呼んでいないのが原因です。WPMU Plugin Control を使って Ktai Style の有効・無効は行なわないでください。

### MobilePressNEO との相違点

- 6種類のテンプレートが附属しており、好きなものを選んで使えます。
- 電話キャリアを自動判別して、要所要所で絵文字を使っています。コメントや投稿本文への絵文字入力が可能です。
- 投稿本文に小さめの画像をインライン表示できます。
- ページ容量が大きい場合、5KB〜50KB ごとにページ分割します。
- 最新のコメント一覧やタグクラウドが見られます。
- コメント投稿にユーザー登録必須としている場合でも、コメントできます (ただし、あらかじめ PC でユーザー登録が必要)。
- ウェブログ管理機能があります。
- 全角カナ→半角への変換は行いません (テーマによっては変換します)。
- クッキーに対応していない携帯電話でも、パスワード保護された投稿の閲覧が可能です。
- PHP4 では動かなくなりました。

### Mobile Eye+ との相違点

- 電話キャリアを自動判別して、要所要所で絵文字を使っています。コメントや投稿本文への絵文字入力が可能です。
- 投稿本文に小さめの画像をインライン表示できます。ただし、外部サイトの画像は原則としてリンクになります。
- ページ容量が大きい場合、5KB〜50KB ごとにページ分割します。
- 最新のコメント一覧やタグクラウドが見られます。
- コメント投稿にユーザー登録必須としている場合でも、コメントできます (ただし、あらかじめ PC でユーザー登録が必要)。
- ウェブログ管理機能があります。
- 全角カナ→半角への変換は行いません (テーマによっては変換します)。
- 原則として PCサイト／画像の変換サービスは利用しません (Classic テーマのみ、通勤ブラウザと Google サイト変換を使用)。「あやしい広告」が出ないよう、極力外部サービスは使わない配慮をしています。
- デフォルトではコメントとトラックバックを混在して表示します (WordPress の挙動に準拠)。
- パスワード保護の解除は、端末によらずフォームへの入力で可能です (Basic 認証は使いません)。そのかわり、投稿やコメントの閲覧の度にパスワード入力が必要となります。
- PHP4 では動かなくなりました。

### 今後の予定

- 端末識別情報を使って簡単ログインができるようにする。
- 投稿作成時にファイル添付を可能とする。
- カテゴリーやタグの管理を可能とする。
- Ktai Entry と連携して、投稿の編集をメール投稿で行えるようにしたり、メール投稿用のテンプレートを Ktai Style で作成できるようにする。
- 投稿時に位置情報を追加できるようにする。
- 携帯電話からユーザー登録可能とする。

### 実装しない予定の機能

携帯サイトの URL を PC 向けと分離する
  実装するには技術的にやや困難なことと、今後のウェブサイトは「同じ URL でさまざまなデバイスに対応する」ことが望ましいことから、実装する予定はありません。
端末識別情報を使って簡単ログインができるようにする。
  セキュリティーホールになりやすいことと、クッキーに対応した端末ならば「ログインしたままにする」機能で十分なことから、実装する予定はありません。

## 著作権について

Ktai Style のライセンスは GPL v2 or later とし、著作権は作者である IKEDA Yuriko が保有します。ただし、ソースコードのいくつかの部分は WordPress の本体コードを流用したものがあり、その部分は WordPress 開発者が著作者です。

pics/SA/ フォルダー以下の画像252枚は、シックスアパートが制作したもので、ライセンスは GPL を適用しています。同じ画像が以下の URL で入手できます。
http://start.typepad.jp/typecast/

以上