Ktai Style に関して、附属ドキュメントに掲載されていない疑問点やノウハウなどを掲載します。ここにない質問があれば、まず、附属ドキュメントをよく読んでみてください。それでも解決できなければ、作者にメールするか、WordPress 日本語フォーラム の「プラグイン」で質問してください。
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in /****/wp-content/plugins/ktai-style/ktai_style.php on line 51サーバーが PHP5 を提供していても、自身が利用しているサービス/ドメイン名では PHP4 のままであることも多いので、よく確認してください。
auth_redirect() 関数を二重定義することになってエラーになります。allowed_tags で定義)。例えば、a 要素では title 属性、rel 属性を削除して href 属性のみ残します。check_admin_referer() 関数が二重定義となる PHP エラーが発生します。WordPress 2.6 以降、標準で管理機能への SSL アクセスが可能ですので、それを利用するようにしてください。mbstring.encoding_translation = Off かつ mbstring.http_output = pass にしてください。Ktai Style は、携帯電話向けに Shift_JIS コードに変換していますが、encoding_translation = On で http_output が UTF-8 や EUC-JP になっていると、それらの文字コードに再変換されてしまい、携帯電話で見ると化けてしまいます。ks_wp_head() の引数を KTAI_NONE_PC_HEAD から KTAI_DO_PC_HEAD に変更してください。プラグインによっては、footer.php で ks_wp_footer() の引数を KTAI_NONE_PC_HEAD から KTAI_DO_PC_HEAD に変更する必要があるかもしれません。<?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_page_title()関数を使っている場合、ヘッダ画像のファイル名を引数として与えるだけでよいです。
<?php ks_page_title('logo.gif'); ?><?php
if (! defined('KTAI_ADMIN_MODE')) {
add_filter('ktai_raw_content', 'ks_convert_kana');
}
?><?php
function ks_keep_amazon_image($replace, $orig, $src) {
if (preg_match('#^http://ecx.images-amazon.com/images/#', $src)) {
$replace = $orig;
}
return $replace;
}
add_filter('ktai_image_to_link', 'ks_keep_amazon_image', 10,3);
?>is_ktai() の返り値で判別できます (DoCoMo, KDDI, SoftBank, WILLCOM, EMOBILE, Unknown のいずれか)。端末種別はテンプレートタグ ks_service_type() または is_ktai('type') の返り値で判別できます。iモード の場合 mova, FOMA のいずれか、EZweb の場合 HDML, WAP2.0 のいずれか、ソフトバンクの場合 PDC, 3G のいずれか、ウィルコムの場合 AIR-EDGE、イー・モバイルの場合 EMnet という値になります。ディズニー・モバイルは ソフトバンク 3G とみなします。<?php ks_use_appl_xhtml(); ?> と書けば、スタイルシートに対応できます (スタイルシートの利用方法)。ks_dropdown_categories()を使って以下のようなコードを入れれば OK です。ただし、カテゴリー切り替えメニューはパケット数を消費するため、mova, ソフトバンク PDC など表示サイズが厳しい端末で常にページ分割が発生するという不便が出ます。このため、こういうインターフェースを使うことはおすすめしません。どうしても使用する場合は、カテゴリー数を15個以下にして1ページに表示する投稿数を10件程度にしてください。
<form action="<?php ks_blogurl(); ?>"><div align="center"> <?php ks_dropdown_categories(); ?><input type="submit" value="選択" /> </div></form><hr />
$GA_ACCOUNT, $GA_PIXEL 変数に global 宣言が必要なこと。次に footer.php に入れるコードが PHP ショートタグ形式なこと (<?= $googleAnalyticsImageUrl; ?> になっている) です。ks_wp_footer() にフックすることがおすすめです。(googleAnalyticsGetImageUrl 関数は Google から最新のものを入手して使ってください)
// Copyright 2009 Google Inc. All Rights Reserved.
global $GA_ACCOUNT, $GA_PIXEL; // Change by IKEDA Yuriko
$GA_ACCOUNT = "MO-XXXXXXXX-X";
$GA_PIXEL = "/ga.php";
function googleAnalyticsGetImageUrl() {
global $GA_ACCOUNT, $GA_PIXEL;
$url = "";
$url .= $GA_PIXEL . "?";
$url .= "utmac=" . $GA_ACCOUNT;
$url .= "&utmn=" . rand(0, 0x7fffffff);
$referer = $_SERVER["HTTP_REFERER"];
$query = $_SERVER["QUERY_STRING"];
$path = $_SERVER["REQUEST_URI"];
if (empty($referer)) {
$referer = "-";
}
$url .= "&utmr=" . urlencode($referer);
if (!empty($path)) {
$url .= "&utmp=" . urlencode($path);
}
$url .= "&guid=ON";
return str_replace("&", "&", $url);
}
function show_googleAnalyticsGetImageUrl() {
$googleAnalyticsImageUrl = googleAnalyticsGetImageUrl();
echo '<img src="' . $googleAnalyticsImageUrl . '" />'; // Change by IKEDA Yuriko
}
// Added by IKEDA Yuriko
add_action('ktai_wp_footer', 'show_googleAnalyticsGetImageUrl');
ks_switch_pc_view() を呼び出す部分を削除しても構いません (6行目〜13行目は必須です)。
<?php
/*
Plugin Name: Ktai Style Reject PC
Version: 1.0.0
*/
function ks_reject_pc() {
$url = parse_url(get_bloginfo('wpurl') . '/');
if (! preg_match('!^' . preg_quote($url['path'], '!')
. 'wp-(admin/|login|includes/)!', $_SERVER['REQUEST_URI'])) {
exit();
}
}
add_action('ktai_init_pc', 'ks_reject_pc');
function ks_delete_switch_pc($html) {
return NULL;
}
add_filter('ktai_switch_pc_view', 'ks_delete_switch_pc');
?>ks_in_network() テンプレートタグを使い、これが TRUE かどうかを判定すればよいです。ただし、突然 IP アドレス帯域が増えることがあるため、誤判定する可能性があることにご注意ください。携帯電話ネットワーク外のアクセス時に白紙ページを出すならば、以下のコードを携帯テーマの functions.php に書いてください。
<?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);
?><?php
/*
Plugin Name: Ktai Style Other Pict
Version: 1.0.0
*/
function ks_other_pict($converted, $number, $alt, $charset) {
$image = '';
$pictdir = ks_theme_url(false);
if (preg_match('/^d(\d+)$/', $number, $n)) {
$image = '<img src="' . $pictdir . "imode/{$n[1]}.gif" . '" alt="' . $alt . '" />';
} elseif (preg_match('/^(\d+)$/', $number, $n)) {
$image = '<img src="' . $pictdir . "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="' . $pictdir . "softbank/$num.png" . '" alt="' . $alt . '" />';
} elseif (preg_match('/^wf([01][\da-f]+)$/', $number, $n)) {
$image = '<img src="' . $pictdir . "willcom/{$n[1]}.png" . '" alt="' . $alt . '" />';
} elseif (preg_match('/^e(\d+)$/', $number, $n)) {
$image = '<img src="' . $pictdir . "emobile/{$n[1]}.png" . '" alt="' . $alt . '" />';
} else {
$image = is_null($alt) ? $converted : $alt;
}
return $image;
}
add_filter('ktai_convert_pict_other', 'ks_other_pict', 10, 4);
?>
※各キャリアに類似した絵文字画像を配布しているサイトがありますが、使用については自己責任でお願いします。自社の携帯絵文字を無許可で利用できるキャリア、商用利用では申請が必要なキャリアもあるようです。以上