Ktai Style に関して、附属ドキュメントに掲載されていない疑問点やノウハウなどを掲載します。ここにない質問があれば、まず、附属ドキュメントをよく読んでみてください。それでも解決できなければ、作者にメールするか、WordPress 日本語フォーラム の「プラグイン」で質問してください。
auth_redirect() 関数を二重定義することになってエラーになります。is_ktai() 関数は使えません)。除外するユーザーエージェントに携帯電話のユーザーエージェント (DoCoMo, KDDI 等) を追加しても、すでにキャッシュが存在する場合は PC 向けコンテンツを返してしまうため、意味はありません。なお、「Mobile Eye+とWP-Cacheを併用する」のテクニックは、Ktai Style では不具合が起きます (携帯キャリアごとに絵文字が違ったり、分割位置が違うため)。allowed_tags で定義)。例えば、a 要素では title 属性、rel 属性を削除して href 属性のみ残します。mbstring.encoding_translation = Off かつ mbstring.http_output = pass にしてください。Ktai Style は、携帯電話向けに Shift_JIS コードに変換していますが、encoding_translation = On で http_output が UTF-8 や EUC-JP になっていると、それらの文字コードに再変換されてしまい、携帯電話で見ると化けてしまいます。ks_wp_head() をコメントアウトしている箇所を外してください。プラグインによっては、footer.php で ks_wp_footer() のコメントを外す必要があるかもしれません。<?php ks_switch_inline_images(); ?> が記述されているか確認してください。挿入位置などは、default テーマの footer.php を参考にしてみてください。<h1><?php echo get_bloginfo('name'); ?></h1> と書かれている部分を以下のように置き換えてください (ヘッダ画像のファイル名は適宜読み替えること)。
<h1 align="center"><img src="<?php ks_theme_url(); ?>logo.png" alt="<?php echo get_bloginfo('name'); ?>" /></h1>ks_convert_kana() 関数で半角カナ変換を行っており、その下にある add_filter() で変換を有効にしています。function ks_keep_amazon_image($replace, $orig, $src) {
if (preg_match('#^http://ecx.images-amazon.com/images/#', $src)) {
$replace = $orig;
}
return $replace;
}
add_filter('image_to_link/ktai_style.php', 'ks_keep_amazon_image', 10,3);is_ktai() の返り値で判別できます (DoCoMo, KDDI, SoftBank, WILLCOM, EMOBILE, Unknown のいずれか)。端末種別はテンプレートタグ ks_service_type() の返り値で判別できます。i-mode の場合 mova, FOMA のいずれか、EZweb の場合 HDML, WAP2.0 のいずれか、SoftBank の場合 PDC, 3G のいずれか、WILLCOM の場合 AIR-EDGE、イー・モバイルの場合 EMnet という値になります。ディズニー・モバイルは SoftBank 3G とみなします。<?php ks_use_appl_xhtml(); ?> と書けば、スタイルシートに対応できます (スタイルシートの利用方法)。<div align="center"><form action="<?php ks_blogurl(); ?>">
<?php wp_dropdown_categories('show_option_all=すべて'); ?><input type="submit" value="選択" />
</form></div><hr />ks_switch_pc_view() を呼び出す部分を削除しても構いません (1行目〜6行目は必須です)。
function ks_reject_pc() {
if (! preg_match('!^' . preg_quote(parse_url(get_bloginfo('wpurl') . '/', PHP_URL_PATH), '!') . 'wp-(admin/|login|includes/)!', Ktai_Style::request_path())) {
exit();
}
}
add_action('init_pc/ktai_style.php', 'ks_reject_pc');
function ks_delete_switch_pc($html) {
return NULL;
}
add_filter('switch_pc_view/ktai_style.php', 'ks_delete_switch_pc');ks_in_network() テンプレートタグを使い、これが TRUE かどうかを判定すればよいです。ただし、突然 IP アドレス帯域が増えることがあるため、誤判定する可能性があることにご注意ください。携帯電話ネットワーク外のアクセス時に白紙ページを出すならば、以下のコードを携帯テーマの functions.php に書いてください。
function ks_deny_out_of_network() {
global $Ktai_Style;
if ($Ktai_Style->ktai && ! $Ktai_Style->ktai->in_network()) {
exit();
}
}
add_filter('template_redirect', 'ks_deny_out_of_network', 8);function ks_sjk_redir($html, $url) {
$html = '<p>別のサイトへジャンプしようとしています。</p><p>↓クリック<br /><a href="'
. attribute_escape($url) . '">' . attribute_escape($url) . '</a></p>';
$sjk_link = 'http://www.sjk.co.jp/c/w.exe?y=' . rawurlencode(preg_replace('|^http://|', '', $url));
$html .= '<p>上記URLのサイトは携帯電話で正しく表示できないかもしれませんが、下記URLであれば表示できるかもしれません。</p>'
. '<p>↓クリック<br /><a href="' . $sjk_link . '">' . $sjk_link . '</a>'
. '</p><hr /><p>前のページへは携帯電話の戻るボタンで戻ってください。</p>';
return $html;
}
add_filter('redir/ktai_style.php', 'ks_sjk_redir', 10, 2);<img localsrc="XXXX" /> フォーマットの絵文字は代替文字に変換してします。ご自身で、携帯電話各社が提供する絵文字の利用許可を取り、Ktai Style で使うことは可能です。例えば、利用中テーマに各キャリアごとのディレクトリーを作成し、10進数の絵文字番号 (ウィルコムは16進数3ケタ) をファイル名とした画像ファイルを収納した場合は、以下のようなコードを my-hacks.php に書けば利用可能です。
function ks_other_pict($converted, $number, $alt, $charset) {
$image = '';
if (preg_match('^/d(\d+)$/', $number, $n)) {
$image = '<img src="' . ks_theme_url() . "imode/{$n[1]}.gif" . '" alt="' . $alt . '" />';
} elseif (preg_match('/^(\d+)$/', $number, $n)) {
$image = '<img src="' . ks_theme_url() . "ezweb/{$n[1]}.png" . '" alt="' . $alt . '" />';
} elseif (preg_match('/^se([0-5])([\da-f]+)$/', $number, $n)) {
$offset = array(0, 90, 180, 270, 347, 423);
$num = $offset[$n[1]] + hexdec($n[2]);
$image = '<img src="' . ks_theme_url() . "softbank/$num.png" . '" alt="' . $alt . '" />';
} elseif (preg_match('/^wf([01][\da-f]+)$/', $number, $n)) {
$image = '<img src="' . ks_theme_url() . "willcom/{$n[1]}.png" . '" alt="' . $alt . '" />';
} elseif (preg_match('/^e(\d+)$/', $number, $n)) {
$image = '<img src="' . ks_theme_url() . "emobile/{$n[1]}.png" . '" alt="' . $alt . '" />';
} else {
$image = is_null($alt) ? $converted : $alt;
}
return $image;
}
add_filter('convert_pict_other/ktai_style.php', 'ks_other_pict', 10, 4);
Ktai Style は GPL ソフトウェアであり、携帯電話各社が提供する絵文字データは、それぞれのライセンスが GPL と矛盾するために、収録することができません。あしからずご了承ください。PC やスマートフォン向けの絵文字画像を独自で作成すれば収録可能ですが、文字数が多いため、今のところ作成する予定はありません。