ここでは、携帯サイトの見た目を変更する方法を説明します。管理画面での設定による方法と、携帯表示用テンプレートの改造による方法があります。
使用するテーマを選択します。初期状態では以下の4つのテーマがあります。
携帯電話キャリアごとにテーマを変更できますが、通常は「共通テーマと同じ」のままで構いません。
携帯サイトの見栄えを変更できます。
<img localsrc="NNN" />
のフォーマットに変換します。「認めない」を選択すると絵文字を削除します。※バージョン 0.97 以降、外部サイトへのリンクは原則として残すことにしました。もし、外部サイトへのリンクを一律に削除したい場合は、使用している携帯テーマの functions.php に以下のコードを入れてください。
function ks_delete_external_links($link_html, $href, $label) { return $label; } add_filter('external_link/ktai_style.php', 'ks_delete_external_links', 90, 3);
逆に、外部リンクを一律に直接リンクしたい場合は、使用している携帯テーマの functions.php に以下のコードを入れてください。
function ks_direct_external_link($link_html, $href, $label) { return '<a href="' . attribute_escape($href) . '">' . $label . '</a>'; } add_filter('external_link/ktai_style.php', 'ks_direct_external_link', 90, 3);
要所要所の文字色を変更できます。設定値は #rrggbb の16進表記で記述します。HTML では一般的な書式です。値を入力すると、リアルタイムに色見本が変更され、色の確認がしやすくなっています。なお、Ktai Style の標準テーマ以外では設定が反映されない場合があります。
※背景色・通常の文字色・リンク色・訪問済みリンク色は、設定画面ではなく、テーマの header.php を改造してください。bgcolor, text, link, vlink 属性を入れた body 要素をコメント化して準備してありますので、既存の body 要素と入れ換え、属性値を設定すれば OK です。使わない属性値は削除してください。なお、text 要素を設定した場合、iモード絵文字はデフォルトの色ではなく、すべて text 属性で指定した色になってしまいます。デフォルトの絵文字色を生かしたい場合は text 要素は使わないでください。
投稿やコメントの日付書式を変更できます。WordPress 一般設定の日付書式は、原則として使っていません (記事タイトルの上に表示する日付は一般設定を適用)。
これは、「今年の日付は年を省略して表示する」「今日の日付は時刻のみ表示する」という短縮処理を行うためです。したがって、それぞれの状況に応じて書式を設定する必要があります。
フォーマットに使う文字列は WordPress の設定画面と同じ (PHP の date()
関数と同じ) です。
Y-m-d
という ISO フォーマットです。スラッシュ区切りや日本語表記に変更して構いません。なお、年・月・日を示す文字それぞれが含まれる必要があります。Y/m/d , Y年n月j日, M jS, Y
n/j, Y年n月
n/j
という書式です。年省略では ISO フォーマットは不自然なためです。月・日を示す文字列それぞれが含まれる必要があります。H:i
です。本プラグインのテンプレートは、WordPress のテーマとほぼ同じ構造です。このため、WordPress のテーマを制作・改造したことがあれば、同じ要領で改造することができます。
独自のテーマを作るときは、既存テーマのフォルダーを複製して好きな名前を付け、その複製に対して作業することをおすすめします。default テーマを直接改造することは避けてください。独自テーマは、ktai_style/themes/ ディレクトリーに入れてもいいですが、wp-content/ktai-themes/ ディレクトリーを作成して、そこに格納することをおすすめします。
なお、プラグインのソースコードおよびテンプレートは原則として英数字のみで記述されています。改造時に日本語文字列を入れる場合は、「ウェブログの文字コードと同じコード」(たいてい UTF-8) で保存してください (Windows のテキストエディターの場合、英数字のみのファイルに日本語を追加すると Shift_JIS で保存することが多いため要注意!!)。
なお、WordPress の管理画面で編集しても構いません。ただし、emobile.php, ezweb.php, i-mode.php, softbank.php, willcom.php は Shift_JIS で書かれています。WordPress の管理画面で編集すると壊れますので、ご注意ください。
併用する他のプラグインは、携帯電話表示のとき動作しないものがあります。この場合、header.php で ks_wp_head()
を有効にしたり、footer.php で ks_wp_footer()
を有効にすると動作するようになる場合があります (デフォルトではこれらのテンプレートタグはコメントアウト)。
add_action('wp_head');
を利用しているプラグインの場合、このテンプレートの wp_head()
前後のコメントマークを削除すると動作するようになります。add_action('wp_footer');
を利用しているプラグインの場合、このテンプレートの wp_footer()
前後のコメントマークを削除すると動作するようになります。comments_template()
タグで呼び出されます。以上は WordPress の仕様に従って呼び出されます。もし、category-10.php というテンプレートを追加すれば、カテゴリー ID = 10 のアーカイブにはこのテンプレートが利用されます。
固定ページに独自のページテンプレートを割り当てている場合、携帯表示でも同じファイル名のページテンプレートが自動的に呼び出されます。例えば、PC 向けの Default テーマでは links.php というファイル名でブログロールを表示するテンプレート (リンクテンプレート) がありますが、これを使用している場合、携帯テーマに links.php というファイル名のテンプレートを作っておけば、それが呼び出されます。ちなみに、携帯用リンクテンプレートを作るには、(後述の) menu_links.php の複製を作って links.php というファイル名にすれば OK です。
以後は本プラグイン独自のテンプレートです。 ウェブログ直下の URL に「?menu=XXXX」というクエリー文字列を付けると呼び出されます。
例: http://blog.example.jp/?menu=months
<a href="<?php ks_blogurl(); ?>?menu=links">リンク</a>
上記の他、テーマディレクトリーの配下に、独自の menu_XXX.php ファイル (XXX は英小文字、数字とアンダースコア(_) のみ) を作れば、?menu=XXX というクエリーが有効になります。例えば、menu_popular.php というファイルを作って、人気記事をリストするようなテンプレートとしておけば、http://blog.example.jp/?menu=popular などの URL で人気記事を出すページが作れます。PC 向けテーマではサイドバーに入れているものを、携帯版では独立したページに切り出して提供するなどの構成が可能です。
テンプレートや投稿本文で以下の XHTML タグを使えば絵文字を挿入できます。EZweb の絵文字と同じ仕様です。
<img localsrc="999" alt="代替文字" />
localsrc 属性に絵文字番号 (上記の場合 999)、alt 属性は絵文字の代替文字です (PC やスマートフォンなど絵文字非搭載の端末向け)。絵文字番号は以下のものが使えますが、EZweb 絵文字番号を使うことを推奨します。単なるアイコンなど代替文字が必要ない場合は、alt 属性を省略せずに、中身なしの alt 属性 (alt=""
) を入れてください (省略した場合は既定の代替文字が入ってしまいます)。
サービス | 値 | 説明 |
---|---|---|
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 | 001〜d276 | i-mode と同じ |
e253〜e278 | e を除いた部分は10進数で、イー・モバイル絵文字 253〜278 に対応。 |
ドコモ端末、ソフトバンク端末に対しては、似たような絵文字に自動的に変換されます。ウィルコム端末については、ウィルコム独自絵文字で似た絵文字があればそれを使い、なければ i モード互換絵文字に変換します。変換テーブルは独自のもので、キャリア公式のものとは微妙に異なっています。具体的な変換内容についてはソースコード (emobile.php, ezweb.php, i-mode.php, softbank.php, willcom.php) を参照してください。
PC やスマートフォンで閲覧した場合、絵文字は alt 文字列の内容に置換されます。alt 属性が存在しない場合、既定の代替文字を使います (services.php で定義)。
投稿やページでの画像 (img 要素) は、より小さいサムネールにするか (3G, ウィルコム, スマートフォン等)、リンクに変換します (PDC 端末) が、携帯電話でも画像をそのまま表示させたい場合は、その img 要素に
class="ktai"
という属性を追加してください。すでに class 属性があるなら、既存の class の後ろに空白を入れて ktai と書けばよいです。
例: <img src="/qr.png" class="noframe ktai" />
なお、画像のサイズが大きくてページの全体サイズが携帯端末の表示容量を越える場合は、画像を alt テキストの内容に置換して容量制限に収まるようにしています。複数の画像がある場合は、後ろの画像から順にテキスト化されます (前の画像を極力残します)。
ただし、画像サイズのチェックはウェブログ内の画像 (uploads フォルダー配下、プラグイン用画像、テーマ用画像など) に限られ、外部サイトの画像は対象外です。外部サイトの画像に class="ktai"
を付けて表示させた場合、携帯端末の容量制限を越えてしまう可能性があります。
JPEG 画像は、ほぼすべての端末で表示できますが、PNG 画像は i-mode (ドコモ) で表示できず、GIF 画像は Softbank の PDC 端末で表示できません。Ktai Style では、端末に応じてどちらか適切なフォーマットの画像を表示させることができます。
PNG や GIF 画像を使いたい場合は、同じファイル名で PNG フォーマット、GIF フォーマットの画像をそれぞれ用意してください。そして、img 要素の src 属性では、PNG 画像か GIF 画像どちらかを呼び出してください。PNG 画像の呼び出しは i-mode において GIF 画像に、GIF 画像の呼び出しはソフトンバク PDC において PNG 画像に変更されます。
<img src="<?php ks_theme_url(); ?>title.png" class="ktai" />
<img src="<?php ks_theme_url(); ?>map.gif" class="ktai" />
※Ktai Style 1.10 から、PNG, GIF どちらかの画像から片方の画像を作るようにしました。それでも、あらかじめ title.png, title.gif や map.gif, map.png それぞれを作っておくことをおすすめします (特に携帯テーマ用の画像の場合)。
default, compact, redportal テーマでは、WordPress の標準動作と異なり、コメント投稿時に必須事項 (コメント本文、名前、携帯電情報など) が記入されてないとき、コメントフォームを再び表示してその上部にエラーを出します (エラーのインライン表示)。classic テーマは、WordPress 標準の動作である、エラー画面に遷移となります。この場合、携帯電話の機種によっては、前の画面に戻ったとき、入力内容が消えてしまうことがあります。
エラーをインライン表示にするには、submit ボタンを ks_inline_error_submit()
テンプレートタグを使って出力します。
<?php ks_inline_error_submit(__('Say It!')); ?>
<input type="submit" name="submit" value="<?php _e('Say It!'); ?>" />
ドコモ FOMA, EZweb の WAP2.0 対応機、ソフトバンク 3G など、最近の端末ではスタイルシートにも対応しています。EZweb は、media="handheld"
指定によって独立したスタイルシートを作成できます。i-mode 用 CSS (i-CSS) は各要素に style 属性を付与したインライン形式しか対応しておらず、HTTP ヘッダで application/xhtml+xml を名乗る必要があります (text/html ではスタイルシートが無効になります)。
Ktai Style は、デフォルトではスタイルシートを使わず、HTTP ヘッダでは text/html を出力しています。しかし、ks_use_appl_xhtml()
テンプレートタグを使うことにより、ドコモ FOMA, EZweb の WAP2.0 対応機、ソフトバンク 3G において、HTTP ヘッダで application/xhtml+xml を出力し、body, h1 hr, font 要素などの特定の属性を style 属性に変換します。
Ktai Style のテンプレートタグは、従来式の HTML 記述 (font color="blue" など) となっていますが、この変換機構によりスタイルシート記述に対応するようになります。
WordPress が提供するテンプレートタグのうち、以下のものは本プラグインが出力をフィルタして表示を簡略化しています。
the_title()
the_content()
ks_content()
を使ってください (the_content()
はパスワード保護された投稿に非対応のため)。the_excerpt(), get_the_excerpt
get_stylesheet()
get_stylesheet_directory()
get_stylesheet_directory_uri()
get_stylesheet_uri()
get_locale_stylesheet_uri()
get_template()
get_template_directory()
get_template_directory_uri()
get_theme_root()
get_theme_root_uri()
comments_template()
comment_text()
get_permalink()
get_page_link()
get_attachment_link()
get_year_link()
get_month_link()
get_day_link()
get_category_link()
get_tag_link()
wp_list_cats()
wp_list_categories()
wp_list_pages()
Ktai Style 独自のアクションフックを用意しています。以下のようなコードを、my-hacks.php もしくは携帯テーマの functions.php に記述すれば利用可能です。
add_action('init_pc/ktai_style.php', 'フック関数名');
Ktai Style 独自のフィルターフックを用意しています。以下のようなコードを、my-hacks.php もしくは携帯テーマの functions.php に記述すれば利用可能です。
add_filter('raw_content/ktai_style.php', 'フック関数名');
複数の引数がある場合は、優先順位 (デフォルトは10) および引数の数を指定する必要があります。
add_filter('convert_link/ktai_style.php', 'フック関数名', 10, 4);
$ktai, $ua
$ktai
は端末ごとのオブジェクトです (PC と判別された場合は NULL)。$ua
はユーザーエージェント文字列です。判別結果を変更する場合は、既存の $ktai
オプジェクトを破棄してから、新たなオブジェクトを生成して返り値とします。例えば、iPhone, iPod touch を「その他端末」として判別させる場合は以下の通りとします。
function ks_detect_iphone($ktai, $ua) { if (preg_match('/\(iP(hone|od);/', $ua)) { if ($ktai) { unset($ktai); } $ktai = new Ktai_Service_Other($ua); } return $ktai; } add_filter('detect_agent/ktai_style.php', 'ks_detect_iphone', 10, 2);※重要このフィルターを使うフック関数および呼び出し用の
add_filter()
は、my-hacks.php に記述する必要があります。他のフィルターと異なり、携帯テーマの functions.php に入れても読まれません (携帯テーマの functions.php を読む前に携帯端末の判別を行うため)。$smiles
$smiles
は配列で、キーはスマイリーのファイル名 (icon_XXXX.gif) で、値は現在閲覧しているキャリアに対応した絵文字の文字コード (ソフトバンクの場合ウェブコード) です。たいていの場合、フィルター関数では、is_ktai()
を使ってキャリア別に処理する必要があるでしょう。例えば以下のようにします。
function ks_correct_smiley($smiles) { global $Ktai_Style; switch (is_ktai()) { case 'DoCoMo' : $smiles['icon_question.gif'] = Ktai_Service_DoCoMo::$pics['d159']; // use "!?" break; } return $smiles; } add_filter('smiley_table/ktai_style.php', 'ks_correct_smiley');
$trans
<img localsrc="XXXX" />
フォーマットから実際の絵文字に変換するときのテーブルをフィルターします。$trans
は配列で、キーは絵文字番号 (XXXX 部分)、値は現在閲覧しているキャリアに対応した絵文字の文字コード (ソフトバンクの場合ウェブコード) です。$converted, $number, $alt, $charset
$converted
は Ktai Style 既定の代替文字列に置き換えた結果、$number
は絵文字番号、$alt
は <img localsrc...
に書かれた alt 文字列です。空の alt 文字列ならば空文字列が、alt が存在しなければ NULL が入ります。$charset
は $converted, $alt
の文字コードです (スマートフォン等「その他」端末では SJIS-win, PC の場合はウェブログの文字列 (たいてい UTF-8) です。PC でもフィルターを使うためには、my-hacks.php にフィルタ関数および add_filter を書く必要があります。$buffer
$buffer
$buffer, $page_num
$buffer
は出力用 XHTML、$page_num
は現在のページ番号 (最初のページは1) です。携帯電話各社に応じた HTML/XHTML タグ最適化は、このフックに10以上の優先順位を持つフィルターを追加することで行なってください。ページ分割前に li, dt, dd, option などの閉じタグ削除を行なっても、ページ分割処理で補完されてしまうためです。$allowedtags
$allowedtags['style'] = array();
$navi, $prev, $num, $next
$navi
は、メニュー文字列で、%s, %d, %s という変数を含みます。$prev
は1つ目の変数で「*. 前へ」を示す文字列、$num
は2つ目の変数で現在のページ数、$next
は3つ目の変数で「次へ.#」を示す文字列です。 $html, $url, $ext
$html
は出力用HTML, $url
はロゴの URL、$ext
は、閲覧している端末に応じた画像拡張子 (png または gif) です。WordPress ロゴをサイトのロゴに差し替えたいときに使えます。$html, $url, $ext
$html
は出力用HTML, $url
はロゴの URL、$ext
は、閲覧している端末に応じた画像拡張子 (png または gif) です。WordPress ロゴをサイトのロゴに差し替えたいときに使えます。$html, $url
$html
はXHTML で記述された内容で、$url
はジャンプ先 URL です。$schemes
unset($schemes['tel-av:']);
$link_html, $href, $label
$link_html
は Ktai Style による処理後のリンクHTML, $href
はリンク先 URL, $label
はリンク文字列です。携帯電話キャリアや種別を知りたい場合は、is_ktai(), ks_service_type()
を使ってください。$url_pat
function ks_add_mobile_sites($url_pat) { $url_pat[] = 'http://blog\.example\.jp/'; return $url_pat; } add_filter('mobile_same_url/ktai_style.php', 'ks_add_mobile_sites');
$url_pat
http://[-\w]+.(cocolog|air|moe|tea|txt|way)-nifty\.com/
というパターンがあって、ココログのフロントページである http://www.cocolog-nifty.com/ もマッチしてしまいます。しかし、この URL 配下のページは完全に携帯対応しておらず、中継ページなしでリダイレクトするのはふさわしくありません。といって、正規表現で www.cocolog-nifty.com だけ外す記述は難しいため、除外サイトを設定する、という手段を用意しました。mobile_same_url フィルターで追加した URL パターンで似た状況があれば、none_mobile_url フィルターも使ってみてください。$link_html, $orig_html, $href, $label
$link_html
は Ktai Style による処理後のリンク HTML、$orig_html
は処理前の a 要素そのもの、$href
はリンク先 URL、$label
はリンク文字列です。フィルター結果を NULL にすると、a 要素の変換処理が行なわれなくなります。$image_html, $orig_html, $src
$image
は変換前の img 要素そのもの、$src
は画像のソース URL です。フィルター結果を NULL にすると、画像からリンクへの変換処理が行なわれなくなります (画像がそのまま表示される)。$image_inline
$image_inline
が true となっています。この値をそのまま返すと、画像をインライン表示します。常に false を返せば、端末によらず、「画像をリンクにする」がデフォルトになります。逆に、常に true を返すと、2G 端末でも画像をインライン表示してしまいます (おすすめしません)。フィルター関数の例は以下の通りです。
function ks_image_link_default($image_inline) { return false; } add_filter('image_inline_setting/ktai_style.php', 'ks_image_link_default');
$menu, $before, $after
$menu
は切り替えメニュー HTML、$before, $after
は切り替えメニューの前後につく XHTML (ks_switch_inline_images()
の引数)です。$menu, $path, $before, $after
$menu
は切り替えメニュー HTML、$path
は現在 URI のパス部分 (URI のスラッシュ以降)、$before, $after
は切り替えメニューの前後につく XHTML (switch_pc_view()
の引数)です。$style
$style
は XHTML の head 要素に入るスタイルシートそのもの (<style type="text/css"> などの style タグは含みません)。デフォルトのスタイルでは、PC 表示が崩れてしまうときにフィルターを利用して見栄えを調整してください。$menu, $path
$menu
は切り替えメニュー HTML、$path
は現在 URI のパス部分 (URI のスラッシュ以降) です。上記フックでは既定のフィルターを定義していますが、以下の通りにして削除することも可能です。
remove_filter('raw_content/ktai_style.php', array($Ktai_Style->ktai, 'shrink_pre_encode'), 9); remove_filter('encoding_converted/ktai_style.php', array($Ktai_Style->ktai, 'shrink_pre_split'), 5); remove_filter('encoding_converted/ktai_style.php', array($Ktai_Style->ktai, 'replace_smiley'), 7); remove_filter('encoding_converted/ktai_style.php', array($Ktai_Style->ktai, 'convert_pict'), 9); remove_filter('split_page/ktai_style.php', array($KS_Shrinkage, 'add_image_inline'), 7); remove_filter('split_page/ktai_style.php', array($KS_Shrinkage, 'split_page'), 9, 2); remove_filter('split_page/ktai_style.php', array($Ktai_Style->ktai, 'shrink_post_split'), 15); remove_filter('split_page/ktai_style.php', array($KS_Shrinkage, 'trim_images'), 20);
出力される XHTML が簡略化されたテンプレートタグを用意しています。これらの関数はテンプレートが読み込まれる直前に有効となるため、他のプラグインでは、そのプラグインが add_action(), add_filter()
で追加したコールバック関数の中でのみ使えます。
ks_option($name)
$name
: オプション名ks_service_type()
ks_is_flat_rate()
ks_in_network()
$type
が指定されていない場合、menu_XXXX.php を使用した出力の場合 true を返します。is_home()
は、menu_XXXX.php を使った出力の場合でも true になってしまうため、必要に応じて is_home() && ! ks_is_menu()
といったコードを使ってください。$type
に値を入れた場合、その値に対応する menu_XXXX.php を使用しているかどうかの判定になります。例えば、ks_is_menu('comments')
は menu_comments.php を使用した出力の場合 true となります。ks_is_front()
is_home()
かつ1ページ目であれば true となります。独自テンプレートである menu_XXXX.php (年月アーカイブ/カテゴリー一覧/タグクラウド/ページ一覧/ブログロール/最近のコメント) を表示しているときは false になります。ks_is_comments_list()
ks_is_comment_post()
ks_is_comments()
ks_is_image_inline()
ks_is_inline_image()
ではないことに注意してください。ks_added_image()
ks_has_inline_images()
ks_is_image_inline()
が true のとき「画像を表示する/リンクに変換」のメニューが出ます。ks_header()
get_header()
は使えません)。get_footer()
は使えません)。ks_wp_head()
wp_head()
を実行しますが、スタイルシートや JavaScript の出力は抑制されます。wp_head()
の実行を前提とするプラグインを併用するとき、かわりに ks_wp_header()
を使ってください。附属テーマの header.php にはコメントアウトした形で記述ずみですので、コメントを外せば有効になります。wp_footer()
を実行しますが、スタイルシートや JavaScript の出力は抑制されます。wp_footer()
の実行を前提とするプラグインを併用するとき、かわりに ks_wp_footer()
を使ってください。附属テーマの footer.php にはコメントアウトした形で記述ずみですので、コメントを外せば有効になります。ks_blogurl($echo)
$echo
: true の場合、画面に出力します (デフォルト)。false の場合、関数の返り値とします。ks_siteurl($echo)
$echo
: true の場合、画面に出力します (デフォルト)。false の場合、関数の返り値とします。ks_plugin_url($echo)
$echo
: true の場合、画面に出力します (デフォルト)。false の場合、関数の返り値とします。ks_theme_url($echo)
$echo:
true の場合、画面に出力します (デフォルト)。false の場合、関数の返り値とします。ks_admin_url($echo)
$echo
: true の場合、画面に出力します (デフォルト)。false の場合、関数の返り値とします。ks_login_link($before, $after, $echo)
$before
: リンクの前に出力する文字列$after
: リンクの後ろに出力する文字列$echo
: true の場合、画面に出力します (デフォルト)。false の場合、関数の返り値とします。ks_get_logout_url($echo)
$echo
: true の場合、画面に出力します。false の場合、関数の返り値とします (デフォルト)。ks_is_loggedin()
ks_session_id_form()
ks_check_wp_version($version, $operator)
$version
が $operator
に合致する場合 true となります。WordPress ME の場合、「ME」という文字列を除いた数字部分を使用します。ks_term_name()
ks_use_appl_xhtml()
<html xmlns="http://www.w3.org/1999/xhtml">
ks_applied_appl_xhtml()
ks_use_appl_xhtml()
を使っているとき、MIME タイプが application/xhtml+xml に変更されている (== ドコモ FOMA, EZweb (WAP2.0), ソフトバンク 3G, EMnet およびディズニー・モバイルで閲覧している) なら true を返します。ks_force_text_html()
ks_mimetype()
ks_charset()
ks_fix_encoding_form()
ks_detect_encoding()
ks_mb_get_form($key, $charset)
<img localsrc="XXXX" />
の型式に変換されます。フォームには、ks_fix_encoding_form()
で文字コード判別用隠しフィールドを埋め込んでおいてください。wp-settings.php で行なわれる magic_quote 処理は残されます。ks_is_required_term_id()
ks_require_term_id_form($action, $method)
$action:
フォームの送信先$method:
post, get のいずれかks_inline_error_submit($value)
$value:
送信ボタンの表示内容 (デフォルトは _e('Say It!')
です)ks_do_comment_form_action()
do_action('comment_form', $post->ID);>
を実行し、そのアクションで行なわれた画面出力を携帯電話向けに軽量化します。ks_title()
wp_title()
よりも短い表示になります。ks_content()
ks_get_content()
ks_check_password($message)
$message
: 入力フォームの上に出すメッセージks_time($year, $month_date, $time)
date()
関数と同じです。引数を省略すると、プラグイン設定画面に入力したフォーマットとなります。$year
: 年月日を表示する場合のフォーマット (去年以前の日付)$month_date
: 月日を表示する場合のフォーマット (今年の日付)$time
: 時刻のフォーマットks_mod_time($year, $month_date, $time)
date()
関数と同じです。引数を省略すると、プラグイン設定画面に入力したフォーマットとなります。$year
: 年月日を表示する場合のフォーマット (去年以前の日付)$month_date
: 月日を表示する場合のフォーマット (今年の日付)$time
: 時刻のフォーマットks_comment_datetime($year, $month_date, $time)
date()
関数と同じです。引数を省略すると、プラグイン設定画面に入力したフォーマットとなります。$year
: 年月日を表示する場合のフォーマット (去年以前の日付)$month_date
: 月日を表示する場合のフォーマット (今年の日付)$time
: 時刻のフォーマットcomment_author_link()
とほぼ同じ動作ですが、i-mode、EZweb、Yahoo! ケータイのときはリンクが中継ページ経由のものになります。$echo
: true のとき画面に出力します (デフォルト)。false の場合、関数の返り値とします。ks_pict_number($num, $echo)
$num
: 出力したい数字 (0〜9)。10 を与えると 0 を出力します。-1 以下の数値または11以上の数値を与えると□ (四角) を出力します。数字以外の値では何も返しません。$echo
: true の場合、画面に出力します。false の場合、関数の返り値とします (デフォルト)。ks_ordered_link($count, $max, $link, $label)
$count
: 出力したい数字。accesskey 用の番号にもなります。$max
: 絵文字を使う最大値。これより $count
が大きければ、絵文字の代わりに □ (四角) になります。$link
: リンク先 URL$label
: リンク文字列。この引数を省略すると、閉じタグ (</a>) は出力しません。
ks_link_pages($args = '')
wp_link_pages()
の代わりとなる、分割ページ用ナビゲートタグです。パスワード保護された投稿で認証ずみの場合は、アンカーリンクではなく、隠しフィールドにパスワードを埋め込んだフォームボタンが表示されます。このため、パスワードの再入力なしにページ遷移が可能です。$args
: 各種パラメーター (wp_link_pages()
と同じ仕様)ks_pagenum($before, $after)
ks_previous_post_link($format, $link, $in_same_cat, $excluded_categories, $accesskey)
previous_post_link()
と同じものに、$accesskey
が追加されています。$accesskey
: アクセスキー文字ks_next_post_link($format, $link, $in_same_cat, $excluded_categories, $accesskey)
next_post_link()
と同じものに、$accesskey
が追加されています。$accesskey
: アクセスキー文字ks_previous_posts_link($label, $accesskey)
$label
: リンク文字列 (デフォルトは ≪*.前)$accesskey
: アクセスキー文字 (デフォルトは *)ks_next_posts_link($label, $accesskey, $max_page)
$label
: リンク文字列 (デフォルトは #.次≫)$accesskey
: アクセスキー文字 (デフォルトは #)$max_page
: 最大ページ数 (通常は指定不要)$sep
: 間に挟まれる分離文字列。$before
: ナビゲーションの前に付ける HTML タグ$after
: ナビゲーションの後ろに付ける HTML タグ$prev_label
: 前ページを示す文字列 (デフォルトは ≪*.前 )$next_label
: 次ページを示す文字列 (デフォルトは #.次≫ )$prev_key
: 前ページのアクセスキー文字 (デフォルトは *)$next_key
: 次ページアクセスキー文字 (デフォルトは #)$num
: 前後何ページリンクするかの数$first
: 「先頭」を示す文字列$last
: 「末尾」を示す文字列$prev_key
: 前ページのアクセスキー文字 (デフォルトは *)$next_key
: 次ページアクセスキー文字 (デフォルトは #)ks_get_comments_list_link($id)
$id
: 対象とする投稿 ID。投稿ループの中では空でよい。ks_comments_link($icon, $zero, $one, $more, $none, $sec, $accesskey)
$icon
: リンクの前に置く絵文字。NULL を渡すとデフォルトの「メモ用紙」絵文字になります。絵文字なしにするには空文字列を渡してください。$zero
: コメントなしを示す文字列$one
: コメント1件を示す文字列$more
: コメント2件以上を示す文字列。「%」があればコメント数に置換されます。$none
: コメント停止中を示す文字列。これを表示する場合、コメント一覧ページへのリンクはされません。$sec
: パスワード保護している投稿を示す文字列$accesskey
: アクセスキー文字列 (デフォルトはなし)ks_comments_post_url($id)
$id
: 投稿 IDks_comments_post_link($label, $before, $after, $icon, $accesskey)
$label
: リンク先の説明$before
: リンクの前に置く文字列 (絵文字等)$after
: リンクの後に置く文字列$icon
: リンク先説明の前に置く絵文字 (デフォルトは鉛筆の絵)$accesskey
: アクセスキー文字 (デフォルトはなし)ks_back_to_post($icon, $label, $accesskey)
$icon
: リンクの前に置く絵文字$label
: リンク先の説明$accesskey
: アクセスキー文字 (デフォルトはなし)ks_get_recent_comments($num, $type, $group_by_post)
$num
: コメント表示数$type
: コメントの種類を示す文字列$group_by_post
: コメントを投稿ごとにまとめるかどうか (デフォルト true)。true の場合、同じコメントへの投稿をまとめて、2次元配列とします。1次元目は投稿 ID をキーとしたコメントオブジェクトの配列です。false の場合、コメントオブジェクトの配列です。ks_category($separator)
$separator
: カテゴリーごとの区切り文字列$before:
一覧の前に置く文字列 (絵文字等)$after:
一覧の後に置く文字列$separator:
タグごとの区切り文字列ks_tag_cloud($args)
wp_tag_cloud()
と同じ動作をしますが、余計な空白や title 属性、rel 属性などを除去しています。ks_get_archives($args)
wp_get_archives()
の結果から、余計な空白や title 属性を除去して出力します。$arg: ks_get_archives()
と同じ仕様のパラメーターks_list_bookmarks($args)
wp_list_bookmarks()
の結果から、余計な空白や title, rel 属性を除去して出力します。$arg: wp_list_bookmarks()
と同じ仕様のパラメーター$sep
: 項目ごとの区切り$before
: 前に付ける HTML タグ$after
: 後ろに付ける HTML タグ$args
: 表示用パラメーター。get_pages()
の引数が使えます。見せたくないページがある場合、exclude=MM,NN として見せたくないページの page_id を与えることが可能です (MM, NN がページ ID)。さらに、'parent_only=0' とすると、すべてのページをリストアップし、'echo=0' を入れると出力するかわりに HTML を返り値とします。ks_switch_pc_view($before, $after)
$before
: リンクの前に置く文字列$after
: リンクの後に置く文字列ks_switch_inline_images($before, $after)
$before
: メニューの前に置く文字列$after
: メニューの後に置く文字列<!--start paging-->
<!--end paging-->
他のプラグインにおいて、PC 向け出力か携帯電話出力かを区別できるよう、以下の関数を用意しています。
is_ktai()
ks_service_type()
と同じです。引数に 'flat_rate' を与えると、パケット定額制に対応しているかどうかを返します。ks_is_flat_rate()
と同じ動作です。本プラグインが有効・無効にかかわらずエラーが出ないよう、次のようにして使ってください。
if (function_exists('is_ktai') && is_ktai()) { ?> <img localsrc="334" alt="[new] " /> <?php }
次は、携帯電話でない場合にスタイルシートを追加する例です。この判別方法は、Mobile Eye+ を使っている場合や、WPhone Admin Plugin をインストールしている場合にも対応します。
if ((! function_exists('is_mobile') || ! is_mobile()) && (! function_exists('is_ktai') || ! is_ktai())) { ?> <style type="text/css" media="all"> .locationurl { display:none; } </style> <?php }
以前は、原則として is_mobile()
関数を提供し、WPhone Admin Plugin が存在するときのみ、名前の衝突を避けるため is_ktai()
に名前を変えていました。
しかし、WPhone プラグインの提供する is_mobile() 関数はソフトバンク PDC 端末を検出しないことが判明したため、is_mobile()
だけで携帯電話かどうかの判定を行うことができず、is_ktai()
関数も併用する必要が出てしまいました (具体的なコードは上記の通り)。
そうなると、Mobile Eye+ との互換性を取るために、Mobile Eye+ でも使っている関数名である is_mobile()
という名前にする、という措置も無意味となってしまいました。このため、バージョン 0.98 より is_ktai()
関数に一本化することとしました。
# WPhone Admin Plugin の作りが悪い、とも言えますね ;-)
以上