@Ghazascanner
_2019runbot
Ghazascanner File Manager
server :Linux phosweb010 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
Current Path :
/
homepage
/
wordpress
/
wp-content
/
plugins
/
ktai_style
/
Path :
Upload File :
New :
File
Dir
//homepage/wordpress/wp-content/plugins/ktai_style/CUSTOMIZE.ja.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <title>Ktai Style サイト設定とテンプレートの改造</title> <style type="text/css"> h1 {text-align:center;} h2 {color:white; background: maroon;} h3 {width:40%; color: white; background: maroon;} h3 a {color:lightblue;} h4 {width:88%; border-bottom:1px dotted maroon;} dt {font-weight:bold;} dd {margin-bottom:0.5em;} li {line-height:1.5em;} .navi {text-align:center;} </style> </head> <body> <h1>Ktai Style マニュアル</h1> <p class="navi">[ <a href="README.ja.html">はじめに</a> | <a href="HISTORY.ja.html">改版履歴</a> | <a href="CUSTOMIZE.ja.html">サイト設定とテンプレートの改造</a> | <a href="ADMIN.ja.html">ウェブログ管理機能</a> | <a href="Q_and_A.ja.html">よくある質問と答え</a> ]</p> <h2>サイト設定とテンプレートの改造</h2> <p>ここでは、携帯サイトの見た目を変更する方法を説明します。管理画面での設定による方法と、携帯表示用テンプレートの改造による方法があります。</p> <h3 id="preferences">管理画面の「携帯表示」設定</h3> <h4 id="themes">テーマ</h4> <p>使用するテーマを選択します。初期状態では以下の4つのテーマがあります。</p> <ul> <li>default (Ktai Style のデフォルトテーマ)</li> <li>compact (フロントページ・検索結果で、タイトル一覧のみ表示するテーマ)</li> <li>classic (まおう氏の <a href="http://hrlk.com/script/mobile-eye-plus/">Mobile Eye+</a> に似たテーマ)</li> <li>redportal (livedoor Blog に類似させたテーマ。UTF-8 運用のウェブログのみ使用可)</li> </ul> <p>携帯電話キャリアごとにテーマを変更できますが、通常は「共通テーマと同じ」のままで構いません。</p> <h4 id="behavior">動作</h4> <p>携帯サイトの見栄えを変更できます。</p> <dl> <dt>3G 端末, WILLCOM, スマートフォン等での画像表示</dt> <dd>3G 端末、WILLCOM, スマートフォン等 (今ドキの端末) の場合、デフォルトではサーバー上の画像をインライン表示します。これを、PDC 端末同様、画像へのリンクに変換する処理に設定できます。デフォルト値が変化するだけで、ページ下部には「画像を表示する/リンクにする」のメニューが出るため、閲覧者が好みによって画像をインライン表示させることが可能です。最近ではパケット定額制を利用している閲覧者が多いため、このオプションを変更する必要はないでしょう。</dd> <dt>コメントフォームや投稿内容での絵文字入力</dt> <dd>コメントフォームや、携帯管理画面での投稿内容において、携帯電話絵文字を使えるようにします。「許す」を選択すると、絵文字を検出して <code><img localsrc="XXXX" /></code> のフォーマットに変換します。「認めない」を選択すると何も処理しませんので、データベースへの保存時に絵文字が失なわれます (SoftBank 絵文字はウェブコードのまま残ってしまいます)。</dd> <dt>コメントとトラックバック</dt> <dd>デフォルトでは、各記事および最新コメント一覧において、コメントとトラックバック・ピンバックを混在して表示しますが、二者を分離できます (トラックバックとピンバックは分離しません)。<br /> なお、各記事についている「コメントn件」の件数については、コメントとトラックバックを合わせた数です (分離はできません)。</dd> <dt>直接リンクを張るサイト</dt> <dd>このフィールドに記入された URL へのリンクは、中継ページ経由のリンクにせず普通にリンク (直接リンク) します。携帯電話対応サイトの URL を記入すると便利です。この設定を使わずに、それぞれの a 要素に class="ktai" と記載しても、直接リンクするようになります。</dd> <dt>コメント投稿者の端末識別情報</dt> <dd>「送信が必須」を選ぶと、ドコモ、au、ソフトバンク、イー・モバイル音声端末からのコメント投稿時に、端末識別情報 (iモードID、EZ番号、ユーザーID 等) を送信しないと受け付けられなくなります。送信された端末 ID は、ユーザーエージェントの後に付与してデータベースに保存されます。WordPress の管理画面では通常見られませんが、phpMyAdmin 等で wp_comments テーブルの comment_agent カラムを見れば確認できます。<ul> <li>Term ID: 端末情報 (電話機製造番号、USIM ID など)</li> <li>Sub ID : 契約者情報 (iモードID、EZ番号、ユーザーID など)</li> </ul> なお、ウィルコム端末、その他端末 (スマートフォン、PSP 等) では、「送信が必須」にしても端末 ID なしでコメント可能です。<br /> <strong>*** 注意 ***</strong>「送信を必須」にしても、フルブラウザ・PC サイトビューアー等に切り換えれば回避できます。通常は「必須ではない」を選択することをおすすめします。</dd> </dl> <p id="del_ext">※バージョン 0.97 以降、外部サイトへのリンクは原則として残すことにしました。もし、外部サイトへのリンクを一律に削除したい場合は、使用している携帯テーマの functions.php に以下のコードを入れてください。</p> <pre>function ks_delete_external_links($link_html, $href, $label) { return $label; } add_filter('external_link/ktai_style.php', 'ks_delete_external_links', 90, 3);</pre> <h4 id="text_color">文字色</h4> <p>要所要所の文字色を変更できます。設定値は #rrggbb の16進表記で記述します。HTML では一般的な書式です。値を入力すると、リアルタイムに色見本が変更され、色の確認がしやすくなっています。なお、Ktai Style の標準テーマ以外では設定が反映されない場合があります。</p> <ul> <li>記事タイトル一覧の横に表示する日付</li> <li>記事本文に表示する投稿者・日付</li> <li>コメント種別 (コメント/トラックバック/ピンバック)</li> <li>PC 向けサイトへのリンク文字列</li> </ul> <p>※背景色・通常の文字色・リンク色・訪問済みリンク色は、設定画面ではなく、テンプレートの改造 (templates/header.php の <body> 要素の属性を修正) で対応してください。</p> <h4 id="date_format">投稿・コメントの日付書式</h4> <p>投稿やコメントの日付書式を変更できます。WordPress 一般設定の日付書式は、原則として使っていません (記事タイトルの上に表示する日付は一般設定を適用)。</p> <p>これは、「今年の日付は年を省略して表示する」「今日の日付は時刻のみ表示する」という短縮処理を行うためです。したがって、それぞれの状況に応じて書式を設定する必要があります。</p> <p>フォーマットに使う文字列は WordPress の設定画面と同じ (PHP の <code>date()</code> 関数と同じ) です。</p> <dl> <dt>年月日を表示する場合 (去年以前の日付)</dt> <dd>デフォルトでは <code>Y-m-d</code> という ISO フォーマットです。スラッシュ区切りや日本語表記に変更して構いません。なお、年・月・日を示す文字それぞれが含まれる必要があります。<br /> OK な例: <code>Y/m/d , Y年n月j日, M jS, Y</code><br /> ダメな例: <code>n/j, Y年n月</code></dd> <dt>月日のみ表示の場合 (今年の日付)</dt> <dd>デフォルトではスラッシュ区切リの <code>n/j</code> という書式です。年省略では ISO フォーマットは不自然なためです。月・日を示す文字列それぞれが含まれる必要があります。</dd> <dt>時刻</dt> <dd>時刻フォーマットはすべての場合で使われます。デフォルトは秒を省略した <code>H:i</code> です。</dd> </dl> <h3 id="template">テンプレートの改造</h3> <p>本プラグインのテンプレートは、WordPress のテーマとほぼ同じ構造です。このため、WordPress のテーマを制作・改造したことがあれば、同じ要領で改造することができます。</p> <p>独自のテーマを作るときは、既存テーマのフォルダーを複製して好きな名前を付け、その複製に対して作業することをおすすめします。default テーマを直接改造することは避けてください。独自テーマは、ktai_style/themes/ ディレクトリーに入れてもいいですが、wp-content/ktai-themes/ ディレクトリーを作成して、そこに格納することをおすすめします。</p> <p>なお、プラグインのソースコードおよびテンプレートは原則として英数字のみで記述されています。改造時に日本語文字列を入れる場合は、「ウェブログの文字コードと同じコード」(たいてい UTF-8) で保存してください (Windows のテキストエディターの場合、英数字のみのファイルに日本語を追加すると Shift_JIS で保存することが多いため要注意!!)。</p> <p>なお、WordPress の管理画面で編集しても構いません。ただし、emobile.php, ezweb.php, i-mode.php, softbank.php, willcom.php は Shift_JIS で書かれています。WordPress の管理画面で編集すると壊れますので、ご注意ください。</p> <p>併用する他のプラグインは、携帯電話表示のとき動作しないものがあります。この場合、header.php で <code>ks_wp_head()</code> を有効にしたり、footer.php で <code>ks_wp_footer()</code> を有効にすると動作するようになる場合があります (デフォルトではこれらのテンプレートタグはコメントアウト)。</p> <h3 id="templates">附属テンプレートファイル一覧</h3> <h4 id="wp-standard">WordPress 標準テンプレート</h4> <dl> <dt>style.css</dt> <dd>テーマの名称、配布元、説明、バージョン、作者を記述するために使用しています。バージョン 1.00 から必須のテンプレートとなりました (存在しない場合携帯テーマとして認識されません)。今のところスタイルシートとしては使用していません。</dd> <dt>header.php</dt> <dd>ページヘッダの表示用。<code>add_action('wp_head');</code> を利用しているプラグインの場合、このテンプレートの <code>wp_head()</code> 前後のコメントマークを削除すると動作するようになります。</dd> <dt>footer.php</dt> <dd>ページフッタの表示用。<code>add_action('wp_footer');</code> を利用しているプラグインの場合、このテンプレートの <code>wp_footer()</code> 前後のコメントマークを削除すると動作するようになります。</dd> <dt>index.php</dt> <dd>フロントページ・検索ページなど表示用で、必須のテンプレートです (存在しない場合携帯テーマとして認識されません)。default テーマでは、1番目の記事だけ本文を表示し、2番目以後はタイトル表示というスタイル、compact, classic, redportal テーマではすべてタイトル表示です。</dd> <dt>archive.php</dt> <dd>アーカイブページ (年日付別/カテゴリー別/投稿者別など) 表示用。記事タイトルだけ表示します。このテンプレートがないときは index.php で代用します。</dd> <dt>page.php</dt> <dd>固定ページ表示用。このテンプレートがないときは index.php で代用します。</dd> <dt>single.php</dt> <dd>投稿の単独表示用。このテンプレートがないときは index.php で代用しますが、デフォルトの index.php ではコメント一覧やコメント投稿フォームが出ないため、実質的に必須のテンプレートです。</dd> <dt>comments.php</dt> <dd>コメント一覧/コメント投稿フォーム表示用。コメント閲覧・投稿を行うためには必須のテンプレートです。single.php から <code>comments_template()</code> タグで呼び出されます。</dd> <dt>functions.php</dt> <dd>テーマ用の独自関数定義ファイル。附属テーマでは classic テーマのみ存在しており、全角カタカナ→半角カナ変換を行うフィルターを定義しています。</dd> </dl> <p>以上は WordPress の仕様に従って呼び出されます。もし、category-10.php というテンプレートを追加すれば、カテゴリー ID = 10 のアーカイブにはこのテンプレートが利用されます。</p> <h4 id="plugin-specific">本プラグイン独自テンプレート</h4> <p>以後は本プラグイン独自のテンプレートです。 ウェブログ直下の URL に「?menu=XXXX」というクエリー文字列を付けると呼び出されます。<br /> 例: http://blog.example.jp/?menu=months</p> <dl> <dt>menu_months.php</dt> <dd>年月アーカイブの一覧表示用。?menu=months で呼び出し。</dd> <dt>menu_cats.php</dt> <dd>カテゴリー一覧表示用。?menu=cats で呼び出し。</dd> <dt>menu_tags.php</dt> <dd>タグ一覧表示用。?menu=tags で呼び出し。</dd> <dt>menu_pages.php</dt> <dd>ページ一覧表示用?menu=pages で呼び出し。defalt, compact テーマでは使用していません。</dd> <dt>menu_links.php</dt> <dd>ブックマーク (ブログロール) 一覧表示用。?menu=links で呼び出し。デフォルトではこのテンプレートは使用していません。footer.php などに、<br /> <code><a href="<?php ks_blogurl(); ?>?menu=links">リンク</a></code><br /> のように記載すれば使用できます。</dd> <dt>menu_comments.php</dt> <dd>最近のコメント表示用。?menu=comments で呼び出し。デフォルトでは、コメントとトラックバック・ピンバックを混在して表示しますが、設定で分離表示が可能です。</dd> </dl> <p>上記の他、テーマディレクトリーの配下に、独自の menu_XXX.php ファイル (XXX は英小文字、数字とアンダースコア(_) のみ) を作れば、?menu=XXX というクエリーが有効になります。例えば、menu_popular.php というファイルを作って、人気記事をリストするようなテンプレートとしておけば、http://blog.example.jp/?menu=popular などの URL で人気記事を出すページが作れます。PC 向けテーマではサイドバーに入れているものを、携帯版では独立したページに切り出して提供するなどの構成が可能です。</p> <h4 id="pictograms">絵文字の使い方</h4> <p>テンプレートや投稿本文で以下の XHTML タグを使えば絵文字を挿入できます。EZweb の絵文字と同じ仕様です。<br /> <code><img localsrc="999" alt="代替文字" /></code><br /> localsrc 属性に絵文字番号 (上記の場合 999)、alt 属性は絵文字の代替文字です (PC やスマートフォンなど絵文字非搭載の端末向け)。絵文字番号は以下のものが使えますが、EZweb 絵文字番号を使うことを推奨します。単なるアイコンなど代替文字が必要ない場合は、alt 属性を省略せずに、中身なしの alt 属性 (<code>alt=""</code>) を入れてください (省略した場合は既定の代替文字が入ってしまいます)。</p> <table border> <tr><th>サービス</th><th style="width:6.5em;">値</th><th>説明</th></tr> <tr><td><a href="http://www.au.kddi.com/ezfactory/tec/spec/3.html">EZweb</a></td><td>1〜822</td><td>10進数で EZweb 絵文字番号にそのまま対応</td></tr> <tr><td><a href="http://developers.softbankmobile.co.jp/dp/tool_dl/web/picword_top.php">SoftBank</a></td><td>se001〜se53e</td><td>s を除いた部分は16進数4ケタで、SoftBank 絵文字の UNICODE 値に対応。</td></tr> <tr><td><a href="http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/index.html">i-mode</a></td><td>d001〜d276</td><td>d を除いた部分は10進数。1〜176 は基本絵文字、201〜276 は拡張絵文字 1〜76 に対応。</td></tr> <tr><td rowspan="2"><a href="http://www.willcom-inc.com/ja/service/contents_service/club_air_edge/for_phone/homepage/">WILLCOM</a></td><td>d001〜d276</td><td>i-mode と同じ</td></tr> <tr><!-- td/td --><td>wf040〜wf15f</td><td>w を除いた部分は16進数4ケタで、ウィルコム絵文字の Shift_JIS コードに対応</td></tr> <tr><td rowspan="2"><a href="http://emobile.jp/tech/browser.html">EMnet</a></td><td>001〜d276</td><td>i-mode と同じ</td></tr> <tr><!-- td/td --><td>e253〜e278</td><td>e を除いた部分は10進数で、イー・モバイル絵文字 253〜278 に対応。</td></tr> </table> <p>ドコモ端末、ソフトバンク端末に対しては、似たような絵文字に自動的に変換されます。ウィルコム端末については、ウィルコム独自絵文字で似た絵文字があればそれを使い、なければ i モード互換絵文字に変換します。変換テーブルは独自のもので、キャリア公式のものとは微妙に異なっています。具体的な変換内容についてはソースコード (emobile.php, ezweb.php, i-mode.php, softbank.php, willcom.php) を参照してください。</p> <p>PC やスマートフォンで閲覧した場合、絵文字は alt 文字列の内容に置換されます。alt 属性が存在しない場合、既定の代替文字を使います (services.php で定義)。</p> <h4 id="use_images">投稿やページの画像をそのまま表示させる</h4> <p>投稿やページでの画像 (img 要素) は、より小さいサムネールにするか (3G, WILLCOM, スマートフォン等)、リンクに変換します (PDC 端末) が、携帯電話でも画像をそのまま表示させたい場合は、その img 要素に <br /> <code>class="ktai"</code><br /> という属性を追加してください。すでに class 属性があるなら、既存の class の後ろに空白を入れて ktai と書けばよいです。<br /> 例: <code><img src="/qr.png" class="noframe ktai" /></code></p> <p>なお、画像のサイズが大きくてページの全体サイズが携帯端末の表示容量を越える場合は、画像を alt テキストの内容に置換して容量制限に収まるようにしています。複数の画像がある場合は、後ろの画像から順にテキスト化されます (前の画像を極力残します)。</p> <p>ただし、画像サイズのチェックはウェブログ内の画像 (uploads フォルダー配下、プラグイン用画像、テーマ用画像など) に限られ、外部サイトの画像は対象外です。外部サイトの画像に <code>class="ktai"</code> を付けて表示させた場合、携帯端末の容量制限を越えてしまう可能性があります。</p> <h4 id="png_gif">PNG, GIF 自動切り替え機能</h4> <p>JPEG 画像は、ほぼすべての端末で表示できますが、PNG 画像は i-mode (ドコモ) で表示できず、GIF 画像は Softbank の PDC 端末で表示できません。Ktai Style では、端末に応じてどちらか適切なフォーマットの画像を表示させることができます。</p> <p>PNG や GIF 画像を使いたい場合は、同じファイル名で PNG フォーマット、GIF フォーマットの画像をそれぞれ用意してください。そして、img 要素の src 属性では、PNG 画像か GIF 画像どちらかを呼び出してください。PNG 画像の呼び出しは i-mode において GIF 画像に、GIF 画像の呼び出しは SoftBank PDC において PNG 画像に変更されます。</p> <div>例: <code><img src="<?php ks_theme_url(); ?>title.png" class="ktai" /></code><br /> → i-mode では title.gif を読み込む</div> <div>例: <code><img src="<?php ks_theme_url(); ?>map.gif" class="ktai" /></code><br /> → SoftBank では map.png を読み込む</div> <p>※Ktai Style 1.10 から、PNG, GIF どちらかの画像から片方の画像を作るようにしました。それでも、あらかじめ title.png, title.gif や map.gif, map.png それぞれを作っておくことをおすすめします (特に携帯テーマ用の画像の場合)。</p> <h4 id="inline_error">コメント項目不足時エラーのインライン表示</h4> <p>default, compact, redportal テーマでは、WordPress の標準動作と異なり、コメント投稿時に必須事項 (コメント本文、名前、携帯電情報など) が記入されてないとき、コメントフォームを再び表示してその上部にエラーを出します (エラーのインライン表示)。classic テーマは、WordPress 標準の動作である、エラー画面に遷移となります。この場合、携帯電話の機種によっては、前の画面に戻ったとき、入力内容が消えてしまうことがあります。</p> <p>エラーをインライン表示にするには、submit ボタンを <code>ks_inline_error_submit()</code> テンプレートタグを使って出力します。</p> <dl> <dt>default テーマの場合</dt> <dd><code><?php ks_inline_error_submit(_e('Say It!')); ?></code></dd> <dt>classic テーマの場合</dt> <dd><code><input type="submit" name="submit" value="<?php _e('Say It!'); ?>" /></code></dd> </dl> <h4 id="stylesheet">スタイルシートの利用</h4> <p>DoCoMo FOMA, EZweb の WAP2.0 対応機、ソフトバンク 3G など、最近の端末ではスタイルシートにも対応しています。EZweb は、<code>media="handheld"</code> 指定によって独立したスタイルシートを作成できます。i-mode 用 CSS (i-CSS) は各要素に style 属性を付与したインライン形式しか対応しておらず、HTTP ヘッダで application/xhtml+xml を名乗る必要があります (text/html ではスタイルシートが無効になります)。</p> <p>Ktai Style は、デフォルトではスタイルシートを使わず、HTTP ヘッダでは text/html を出力しています。しかし、<code>ks_use_appl_xhtml()</code> テンプレートタグを使うことにより、DoCoMo FOMA, EZweb の WAP2.0 対応機、ソフトバンク 3G において、HTTP ヘッダで application/xhtml+xml を出力し、body, h1 hr, font 要素などの特定の属性を style 属性に変換します。</p> <ul> <li>body bgcolor 等を <style>body {background: なんちゃら}</style> に変換</li> <li>a name を a id に変換</li> <li>h1 (,h2, ... ,h6) align="center" 等を h1 style="text-align:center" 等に変換</li> <li>hr color="blue" 等 を hr style="background-color:blue;border-color:blue;" 等に変換。</li> <li>hr width="90%" 等を hr style="width:90%" 等に変換。</li> <li>hr align="left" 等を hr style="float:left" 等に変換。</li> <li>font size, font color 等を span style="font-size... や span style="font-color... に変換。ただし、font 要素の前後に b,i,u,em,strong 要素があるときは、span 要素 を使わず、b,i,u,em,strong 要素に直接 style 属性を付与します。</li> </ul> <p>Ktai Style のテンプレートタグは、従来式の HTML 記述 (font color="blue" など) となっていますが、この変換機構によりスタイルシート記述に対応するようになります。</p> <h3 id="filtering">フィルタ対象タグ一覧</h3> <p>WordPress が提供するテンプレートタグのうち、以下のものは本プラグインが出力をフィルタして表示を簡略化しています。</p> <dl> <dt><code>the_title()</code></dt> <dd>パスワード保護された投稿の場合、「保護された投稿: 」または「保護中:」の文字列を「マル秘」絵文字に差し替えます。また、携帯管理画面では、「非公開:」の文字列を「鍵」の絵文字に差し替えます。</dd> <dt><code>the_content()</code></dt> <dd>投稿本文を携帯電話向けに変換して出力します。ただし、携帯電話用テンプレートでは、後述の <code>ks_content()</code> を使ってください (<code>the_content()</code> はパスワード保護された投稿に非対応のため)。</dd> <dt><code>the_excerpt(), get_the_excerpt</code></dt> <dd>投稿の抜粋を画面に出力もしくは取得します。抜粋を設定していない場合、投稿本文から、del, style 要素の中身および JavaScript を削除し、マルチバイト文字を考慮して300バイトの抜粋を作成します。</dd> <dt><code>get_stylesheet()</code></dt> <dt><code>get_stylesheet_directory()</code></dt> <dt><code>get_stylesheet_directory_uri()</code></dt> <dt><code>get_stylesheet_uri()</code></dt> <dt><code>get_locale_stylesheet_uri()</code></dt> <dt><code>get_template()</code></dt> <dt><code>get_template_directory()</code></dt> <dt><code>get_template_directory_uri()</code></dt> <dt><code>get_theme_root()</code></dt> <dt><code>get_theme_root_uri()</code></dt> <dt><code>comments_template()</code></dt> <dd>PC 向けサイトのスタイルシート/テーマ/テンプレートの代わりに携帯サイト用のスタイルシート/テーマ/テンプレートを読み込みます。</dd> <dt><code>comment_text()</code></dt> <dd>コメント内容を携帯電話向けに簡略化して出力します。</dd> <dt><code>get_permalink()</code></dt> <dt><code>get_page_link()</code></dt> <dt><code>get_attachment_link()</code></dt> <dt><code>get_year_link()</code></dt> <dt><code>get_month_link()</code></dt> <dt><code>get_day_link()</code></dt> <dt><code>get_category_link()</code></dt> <dt><code>get_tag_link()</code></dt> <dt><code>wp_list_cats()</code></dt> <dt><code>wp_list_categories()</code></dt> <dt><code>wp_list_pages()</code></dt> <dd>すべて title 属性, rel 属性を除去し、href 属性のリンク先からホスト名を削除します。</dd> </dl> <h4 id="actions">独自アクションフック一覧</h4> <p>Ktai Style 独自のアクションフックを用意しています。以下のようなコードを、my-hacks.php もしくは携帯テーマの functions.php に記述すれば利用可能です。</p> <div><code>add_action('init_pc/ktai_style.php', 'フック関数名');</code></div> <dl> <dt id="init_mobile">init_mobile/ktai_style.php</dt> <dd>携帯電話でアクセスしたときの初期化処理に、独自処理を追加するためのアクションです。</dd> <dt id="init_pc">init_pc/ktai_style.php</dt> <dd>PCでアクセスしたときの初期化処理に、独自処理を追加するためのアクションです。</dd> </dl> <h4 id="filters">独自フィルターフック一覧</h4> <p>Ktai Style 独自のフィルターフックを用意しています。以下のようなコードを、my-hacks.php もしくは携帯テーマの functions.php に記述すれば利用可能です。</p> <div><code>add_filter('raw_content/ktai_style.php', 'フック関数名');</code></div> <p>複数の引数がある場合は、優先順位 (デフォルトは10) および引数の数を指定する必要があります。</p> <div><code>add_filter('convert_link/ktai_style.php', 'フック関数名', 10, 4);</code></div> <dl> <dt id="detect_agent">detect_agent/ktai_style.php</dt> <dd>引数: <code>$ktai, $ua</code><br /> 携帯端末の判別結果をフィルターします。<code>$ktai</code> は端末ごとのオブジェクトです (PC と判別された場合は NULL)。<code>$ua</code> はユーザーエージェント文字列です。判別結果を変更する場合は、既存の <code>$ktai</code> オプジェクトを破棄してから、新たなオブジェクトを生成して返り値とします。例えば、Blazer を「その他端末」として判別させる場合は以下の通りとします。 <pre>function ks_detect_blazer($ktai, $ua) { if (preg_match('|\bBlazer/|', $ua)) { if ($ktai) { unset($ktai); } $ktai = new Ktai_Service_Other($ua); } return $ktai; } add_filter('detect_agent/ktai_style.php', 'ks_detect_blazer', 10, 2);</pre> <strong>※重要</strong>このフィルターを使うフック関数および呼び出し用の <code>add_filter()</code> は、my-hacks.php に記述する必要があります。他のフィルターと異なり、携帯テーマの functions.php に入れても読まれません (携帯テーマの functions.php を読む前に携帯端末の判別を行うため)。</dd> <dt id="smiley_table">smiley_table/ktai_style.php</dt> <dd>引数: <code>$smiles</code><br /> WordPress のスマイリーを携帯電話絵文字に変換するテーブルをフィルターします。このフィルターを使えば、スマイリーアイコンを追加した場合、それに対応する携帯絵文字を追加することが可能になります。<code>$smiles</code> は配列で、キーはスマイリーのファイル名 (icon_XXXX.gif) で、値は現在閲覧しているキャリアに対応した絵文字の文字コード (SoftBank の場合ウェブコード) です。たいていの場合、フィルター関数では、<code>is_ktai()</code> を使ってキャリア別に処理する必要があるでしょう。例えば以下のようにします。 <pre>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');</pre></dd> <dt id="pictogram_table">pictogram_table/ktai_style.php</dt> <dd>引数: <code>$trans</code><br /> 絵文字用を示す <code><img localsrc="XXXX" /></code> フォーマットから実際の絵文字に変換するときのテーブルをフィルターします。<code>$trans</code> は配列で、キーは絵文字番号 (XXXX 部分)、値は現在閲覧しているキャリアに対応した絵文字の文字コード (SoftBank の場合ウェブコード) です。</dd> <dt id="convert_pict_other">convert_pict_other/ktai_style.php</dt> <dd>引数: <code>$converted, $number, $alt</code><br /> PC および「その他」端末での閲覧時、携帯電話絵文字を文字列に変換した結果をフィルターします。<code>$converted</code> は Ktai Style 既定の代替文字列に置き換えた結果、<code>$number</code> は絵文字番号、<code>$alt</code> は <code><img localsrc...</code> に書かれた alt 文字列です。空の alt 文字列ならば空文字列が、alt が存在しなければ NULL が入ります。PC でもフィルターを使うためには、my-hacks.php にフィルタ関数および add_filter を書く必要があります。</dd> <dt id="raw_content">raw_content/ktai_style.php</dt> <dd>引数: <code>$buffer</code><br /> テンプレートによって作成された直後のページ内容をフィルターできます。文字コードはウェブログの文字コードのままです (たいていは UTF-8)。UTF-8 そのままで記述されているハートマーク等を数値実体参照に置換する処理は、このフックに処理用関数を割り当てて行なっています。</dd> <dt id="encoding_converted">encoding_converted/ktai_style.php</dt> <dd>引数: <code>$buffer</code><br /> 文字コードを携帯電話用に変換後、ページ分割前の内容をフィルターできます。絵文字 (実体参照で記述されたハートマーク等も含む) や顔文字の変換、余分な XHTML タグや改行コードの削除はこのフックにそれぞれの処理関数を割り当てることで実施しています。優先順位 10 でフィルター追加した場合、これらの処理が終わった後の内容をフィルターすることになります。</dd> <dt id="split_page">split_page/ktai_style.php</dt> <dd>引数: <code>$buffer, $page_num</code><br /> ページ分割を行うためのフィルターです。ページ分割処理は、このフックにページ分割関数を割り当てることで行なっています。<code>$buffer</code> は出力用 XHTML、<code>$page_num</code> は現在のページ番号 (最初のページは1) です。携帯電話各社に応じた HTML/XHTML タグ最適化は、このフックに10以上の優先順位を持つフィルターを追加することで行なってください。ページ分割前に li, dt, dd, option などの閉じタグ削除を行なっても、ページ分割処理で補完されてしまうためです。</dd> <dt id="allowedtags">allowedtags/ktai_style.php</dt> <dd>引数: <code>$allowedtags</code><br /> ページ分割時に、使用を許可する XHTML タグの一覧をフィルターできます。デフォルトのタグ一覧は kses.php で定義していますので、追加したいタグを適宜修正してください。例えば、フィルター関数で<br /> <code>$allowedtags['style'] = array();</code><br /> とすれば style 要素が使えるようになります。</dd> <dt id="split_page_navi">split_page_navi/ktai_style.php</dt> <dd>引数: <code>$navi, $prev, $num, $next</code><br /> 携帯用ページ分割のナビゲーションメニューをフィルターします。すべての引数はウェブログの文字コードと同じ (たいてい UTF-8) で、<code>$navi</code> は、メニュー文字列で、%s, %d, %s という変数を含みます。<code>$prev</code> は1つ目の変数で「*. 前へ」を示す文字列、<code>$num</code> は2つ目の変数で現在のページ数、<code>$next</code> は3つ目の変数で「次へ.#」を示す文字列です。 </dd> <dt id="ks_die_logo">ks_die_logo/ktai_style.php</dt> <dd>引数: <code>$html, $url, $ext</code><br /> 外部サイトへの中継ページ、コメント投稿時のエラー画面、管理画面での確認画面等で、画面上部に出る WordPress ロゴの出力をフィルターします。<code>$html</code> は出力用HTML, <code>$url</code> はロゴの URL、<code>$ext</code> は、閲覧している端末に応じた画像拡張子 (png または gif) です。WordPress ロゴをサイトのロゴに差し替えたいときに使えます。</dd> <dt id="redir">redir/ktai_style.php</dt> <dd>引数: <code>$html, $url</code><br /> i-mode, EZweb, Yahoo! ケータイ閲覧時に外部サイトに移動する際に出る中継ページの文言をフィルターします (<a href="Q_and_A.ja.html#external">使用例</a>)。<code>$html</code> はXHTML で記述された内容で、<code>$url</code> はジャンプ先 URL です。</dd> <dt id="leave_scheme">leave_scheme/ktai_style.php</dt> <dd>引数: <code>$schemes</code><br /> 中継ページ経由のリンクとせず、通常リンクのままとする URI スキーム一覧 (配列) をフィルターできます。フィルター関数で<br /> <code>unset($schemes['tel-av:']);</code><br /> とすると tel-av スキームのリンクは中継ページ経由になります。</dd> <dt id="external_link">external_link/ktai_style.php</dt> <dd>引数: <code>$link_html, $href, $label</code><br /> 外部サイトへのリンク変換処理をフィルターします。<code>$link_html</code> は Ktai Style による処理後のリンクHTML, <code>$href</code> はリンク先 URL, <code>$label</code> はリンク文字列です。携帯電話キャリアや種別を知りたい場合は、<code>is_ktai(), ks_service_type()</code> を使ってください。</dd> <dt id="mobile_same_url">mobile_same_url/ktai_style.php</dt> <dd>引数: <code>$url_pat</code><br /> 同じ URL で PC /携帯両対応できるサイトの URL 正規表現リストをフィルターします。デフォルトの URL リストは、URL が共用になっているサイト、PC 向け URL に携帯電話でアクセスしたら別 URL にリダイレクトされるサイトのどちらも含まれます。デフォルトのサイト一覧に追加する場合は以下のようにします。追加する URL は正規表現であることに注意してください。 <pre>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');</pre></dd> <dt id="none_mobile_url">none_mobile_url/ktai_style.php</dt> <dd>引数: <code>$url_pat</code><br /> 上記 mobile_same_url のパターンにマッチするものの、中継ページを出させたい URL の正規表現リストをフィルターします。これは、"http://www.cocolog-nifty.com/" を除外するために用意しています ;-) mobile_same_url には <code>http://[-\w]+.(cocolog|air|moe|tea|txt|way)-nifty\.com/</code> というパターンがあって、ココログのフロントページである http://www.cocolog-nifty.com/ もマッチしてしまいます。しかし、この URL 配下のページは完全に携帯対応しておらず、中継ページなしでリダイレクトするのはふさわしくありません。といって、正規表現で www.cocolog-nifty.com だけ外す記述は難しいため、除外サイトを設定する、という手段を用意しました。mobile_same_url フィルターで追加した URL パターンで似た状況があれば、none_mobile_url フィルターも使ってみてください。</dd> <dt id="convert_links">convert_links/ktai_style.php</dt> <dd>引数: <code>$link_html, $orig_html, $href, $label</code><br /> a 要素によるハイパーリンクの変換処理をフィルターします。<code>$link_html</code> は Ktai Style による処理後のリンク HTML、<code>$orig_html</code> は処理前の a 要素そのもの、<code>$href</code> はリンク先 URL、<code>$label</code> はリンク文字列です。フィルター結果を NULL にすると、a 要素の変換処理が行なわれなくなります。</dd> <dt id="image_to_link">image_to_link/ktai_style.php</dt> <dd>引数: <code>$image_html, $orig_html, $src</code><br /> img 要素による画像を、より小さいサムネールやリンクに変換する処理をフィルターします。$image_html は Ktai Style による変換後の HTML、<code>$image</code> は変換前の img 要素そのもの、<code>$src</code> は画像のソース URL です。フィルター結果を NULL にすると、画像からリンクへの変換処理が行なわれなくなります (画像がそのまま表示される)。</dd> <dt id="image_inline_setting">image_inline_setting/ktai_style.php</dt> <dd>引数: <code>$image_inline</code><br /> 3G 端末、WILLCOM、スマートフォン等で、画像をインライン表示させるかどうかデフォルト状態をフィルターします。3G 端末、WILLCOM、スマートフォン等でアクセスし、かつ、管理画面で「3G 端末, WILLCOM, スマートフォン等での画像表示」が「画像を表示」に設定されていれば、<code>$image_inline</code> が TRUE となっています。この値をそのまま返すと、画像をインライン表示します。常に FALSE を返せば、端末によらず、「画像をリンクにする」がデフォルトになります。逆に、常に TRUE を返すと、2G 端末でも画像をインライン表示してしまいます (おすすめしません)。フィルター関数の例は以下の通りです。 <pre>function ks_image_link_default($image_inline) { return FALSE; } add_filter('image_inline_setting/ktai_style.php', 'ks_image_link_default');</pre></dd> <dt id="ks_switch_inline_images">ks_switch_inline_images/ktai_style.php</dt> <dd>引数: <code>$menu, $before, $after</code><br /> 「画像を表示する/リンクに変換」の切り替えメニューをフィルターします。<code>$menu</code> は切り替えメニュー HTML、<code>$before, $after</code> は切り替えメニューの前後につく XHTML (<code>ks_switch_inline_images()</code> の引数)です。</dd> <dt id="switch_pc_view">switch_pc_view/ktai_style.php</dt> <dd>引数: <code>$menu, $uri, $before, $after</code><br /> 「PC 表示にする」の切り替えメニューをフィルターします。<code>$menu</code> は切り替えメニュー HTML、<code>$uri</code> は現在ページの URI、<code>$before, $after</code> は切り替えメニューの前後につく XHTML (<code>switch_pc_view()</code> の引数)です。</dd> </dl> <p>上記フックでは既定のフィルターを定義していますが、以下の通りにして削除することも可能です。</p> <pre>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($Ktai_Style->ktai, '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($Ktai_Style->ktai, 'trim_images'), 20);</pre> <h4 id="tags">独自タグ一覧</h4> <p>出力される XHTML が簡略化されたテンプレートタグを用意しています。これらの関数はテンプレートが読み込まれる直前に有効となるため、他のプラグインでは、そのプラグインが <code>add_action(), add_filter()</code> で追加したコールバック関数の中でのみ使えます。</p> <dl> <dt id="ks_option"><code>ks_option($name)</code></dt> <dd>本プラグインのオプション設定値を返します。<br /> <code>$name</code>: オプション名</dd> <dt id="ks_service_type"><code>ks_service_type()</code></dt> <dd>携帯キャリアごとのサービス名を返します。i-mode (DoCoMo) の場合 mova, FOMA のいずれか、EZweb (KDDI) の場合 HDML, WAP2.0 のいずれか、SoftBank の場合 PDC, 3G のいずれか、WILLCOM の場合 AIR-EDGE、イー・モバイルの場合 EMnet という値になります。ディズニー・モバイルは SoftBank 3G とみなします。</dd> <dt id="ks_is_flat_rate"><code>ks_is_flat_rate()</code></dt> <dd>閲覧中の端末が定額パケット通信に対応しているなら TRUE を返します。具体的には、各社 3G 端末、WILLCOM、スマートフォン、「その他」端末 (mova, SoftBank PDC 以外) の場合 TRUE となります。</dd> <dt id="ks_in_network"><code>ks_in_network()</code></dt> <dd>i-mode, EZweb, Yahoo! ケータイ, WILLCOM, EMnet 各社のネットワークからアクセスしている場合 TRUE になります。スマートフォン等でのアクセスや、携帯電話のユーザーエージェントを名乗ってインターネットからアクセスしている場合は FALSE になります。できるだけ最新情報に追随するよう配慮していますが、電話キャリアが突然新しい IP アドレスを追加することがある (携帯電話からアクセスしているのに、FALSE と判定される可能性がある) ため、ご注意ください 。</dd> <dt id="ks_is_menu"><code>ks_is_menu()</code></dt> <dd>menu_XXXX.php を使用した出力の場合 TRUE を返します。<code>is_home()</code> は、menu_XXXX.php を使った出力の場合でも TRUE になってしまうため、必要に応じて <code>is_home() && ! ks_is_menu()</code> といったコードを使ってください。</dd> <dt id="ks_is_front"><code>ks_is_front()</code></dt> <dd>サイトの最初のページかどうかを判断します。<code>is_home()</code> かつ1ページ目であれば TRUE となります。独自テンプレートである menu_XXXX.php (年月アーカイブ/カテゴリー一覧/タグクラウド/ページ一覧/ブログロール/最近のコメント) を表示しているときは FALSE になります。</dd> <dt id="ks_is_comments_list"><code>ks_is_comments_list()</code></dt> <dd>コメント一覧ページであれば TRUE になります。</dd> <dt id="ks_is_comment_post"><code>ks_is_comment_post()</code></dt> <dd>コメント投稿ページであれば TRUE になります。</dd> <dt id="ks_is_comments"><code>ks_is_comments()</code></dt> <dd>コメント一覧ページまたはコメント投稿ページであれば TRUE になります。</dd> <dt id="ks_is_image_inline"><code>ks_is_image_inline()</code></dt> <dd>各社 3G 端末、WILLCOM、スマートフォン等で、画像をインライン表示させる状態のとき TRUE になります。関数名は <code>ks_is_inline_image()</code> <strong>ではない</strong>ことに注意してください。</dd> <dt id="ks_added_image"><code>ks_added_image()</code></dt> <dd>テーマや他のプラグインで、投稿本文やページ本文に画像を追加したとき、この関数を呼ぶ必要があります。さもないと、「画像を表示/リンクに変換」のメニューが出ません。</dd> <dt id="ks_has_inline_images"><code>ks_has_inline_images()</code></dt> <dd>ページ中のインライン画像の枚数を返します。この値が1以上かつ <code>ks_is_image_inline()</code> が TRUE のとき「画像を表示する/リンクに変換」のメニューが出ます。</dd> <dt id="ks_header"><code>ks_header()</code></dt> <dd>ヘッダーを出力します (<code>get_header()</code> は使えません)。</dd> <dt id="ks_footer"><code>ks_footer()</code></dt> <dd>フッターを出力します (<code>get_footer()</code> は使えません)。</dd> <dt id="ks_wp_head"><code>ks_wp_head()</code></dt> <dd>WordPress 標準テンプレートタグ <code>wp_head()</code> を実行しますが、スタイルシートや JavaScript の出力は抑制されます。<code>wp_head()</code> の実行を前提とするプラグインを併用するとき、かわりに <code>ks_wp_header()</code> を使ってください。附属テーマの header.php にはコメントアウトした形で記述ずみですので、コメントを外せば有効になります。</dd> <dt id="ks_wp_footer"><code>ks_wp_footer()</code></dt> <dd>WordPress 標準テンプレートタグ <code>wp_footer()</code> を実行しますが、スタイルシートや JavaScript の出力は抑制されます。<code>wp_footer()</code> の実行を前提とするプラグインを併用するとき、かわりに <code>ks_wp_footer()</code> を使ってください。附属テーマの footer.php にはコメントアウトした形で記述ずみですので、コメントを外せば有効になります。</dd> <dt id="ks_blogurl"><code>ks_blogurl($echo)</code></dt> <dd>ウェブログの URL を出力します。ホスト名を省略した絶対パスに変換し、末尾にスラッシュが付きます。<br /> <code>$echo</code>: TRUE の場合、画面に出力します (デフォルト)。FALSE の場合、関数の返り値とします。</dd> <dt id="ks_siteurl"><code>ks_siteurl($echo)</code></dt> <dd>WordPress がインストールされている URL を出力します。ホスト名を省略した絶対パスに変換し、末尾にスラッシュが付きます。<br /> <code>$echo</code>: TRUE の場合、画面に出力します (デフォルト)。FALSE の場合、関数の返り値とします。</dd> <dt id="ks_plugin_url"><code>ks_plugin_url($echo)</code></dt> <dd>プラグインのあるディレクトリにアクセスできる URL を出力します。末尾にスラッシュが付きます。<br /> <code>$echo</code>: TRUE の場合、画面に出力します (デフォルト)。FALSE の場合、関数の返り値とします。</dd> <dt id="ks_theme_url"><code>ks_theme_url($echo)</code></dt> <dd>携帯電話用テーマのディレクトリーにアクセスできる URL を出力します。末尾にスラッシュが付きます。<br /> <code>$echo:</code> TRUE の場合、画面に出力します (デフォルト)。FALSE の場合、関数の返り値とします。</dd> <dt id="ks_admin_url"><code>ks_admin_url($echo)</code></dt> <dd>管理画面にログインしたときの最上位 URL を出力します。末尾にスラッシュが付きます。<br /> <code>$echo</code>: TRUE の場合、画面に出力します (デフォルト)。FALSE の場合、関数の返り値とします。</dd> <dt id="ks_login_link"><code>ks_login_link($before, $after, $echo)</code></dt> <dd>ktai_style/admin ディレクトリーがあれば、ログイン画面へのリンクを出力します。末尾にスラッシュが付きます<br /> <code>$before</code>: リンクの前に出力する文字列<br /> <code>$after</code>: リンクの後ろに出力する文字列<br /> <code>$echo</code>: TRUE の場合、画面に出力します (デフォルト)。FALSE の場合、関数の返り値とします。</dd> <dt id="ks_get_logout_url"><code>ks_get_logout_url($echo)</code></dt> <dd>ログアウト用の URL を返します。<br /> <code>$echo</code>: TRUE の場合、画面に出力します。FALSE の場合、関数の返り値とします (デフォルト)。</dd> <dt id="ks_is_loggedin"><code>ks_is_loggedin()</code></dt> <dd>携帯電話でログインしている場合、ユーザー ID を返します。ログインしていない場合 FALSE を返します。</dd> <dt id="ks_session_id_form"><code>ks_session_id_form()</code></dt> <dd>コメントフォームなどで、ログイン中のセッション ID を引き継ぐための HTML を出力します。</dd> <dt id="ks_get_wp_version"><code>ks_get_wp_version()</code></dt> <dd>WordPress のバージョンを返します。WordPress ME の場合、「ME」という文字列を除いた数字部分となります。</dd> <dt id="ks_term_name"><code>ks_term_name()</code></dt> <dd>携帯電話の機種名を表示します。不明時は N/A という文字列になります。au の場合、デバイス ID ではなく、一般的な機種名に変換します。</dd> <dt id="ks_use_appl_xhtml"><code>ks_use_appl_xhtml()</code></dt> <dd>DoCoMo FOMA, EZweb (WAP2.0), SoftBank 3G およびディズニー・モバイルのとき、HTTP ヘッダーの MIME タイプを application/xhtml+xml に変更し、以下の html 要素を出力します。また、font 要素の color 属性を span 要素の style 属性に変換するなど、いくつかの XHTML 属性をスタイルシートに変換します (詳細は「↑<a href="#stylesheet">スタイルシートの利用</a>」を参照)。<br /> <code><html xmlns="http://www.w3.org/1999/xhtml"></code><br /> header.php の先頭で使い、かつ、<html> という記述は消しておく必要があります。でないと html 要素がダブって文法違反になります。</dd> <dt id="ks_applied_appl_xhtml"><code>ks_applied_appl_xhtml()</code></dt> <dd><code>ks_use_appl_xhtml()</code> を使っているとき、MIME タイプが application/xhtml+xml に変更されている (== DoCoMo FOMA, EZweb (WAP2.0), SoftBank 3G, EMnet およびディズニー・モバイルで閲覧している) なら TRUE を返します。</dd> <dt id="ks_force_text_html"><code>ks_force_text_html()</code></dt> <dd>MIME タイプを text/html に強制します。header.php の先頭で使う必要があります。</dd> <dt id="ks_mimetype"><code>ks_mimetype()</code></dt> <dd>携帯電話サイトの MIME タイプを出力します。</dd> <dt id="ks_charset"><code>ks_charset()</code></dt> <dd>携帯電話サイトの文字コードを出力します。</dd> <dt id="ks_fix_encoding_form"><code>ks_fix_encoding_form()</code></dt> <dd>入力フォームにおいて、文字化け防止のための文字コード判別用隠しフィールドを追加します。</dd> <dt id="ks_detect_encoding"><code>ks_detect_encoding()</code></dt> <dd>文字コード判別用隠しフィールドをもとに、文字コードを判別します。入力フォームの処理部分で使います。</dd> <dt id="ks_mb_get_form"><code>ks_mb_get_form($key, $charset)</code></dt> <dd>フォームの値をウェブログ文字コード (たいてい UTF-8) に変換して返します。携帯電話絵文字がある場合、<code><img localsrc="XXXX" /></code> の型式に変換されます。フォームには、<code>ks_fix_encoding_form()</code> で文字コード判別用隠しフィールドを埋め込んでおいてください。</dd> <dt id="ks_is_required_term_id"><code>ks_is_required_term_id()</code></dt> <dd>端末 ID を要求している状態ならば TRUE になります。具体的には、管理画面で「コメント投稿者の端末 ID 送信を必須とする」を「はい」にしていて、かつ、閲覧者がドコモ/au/ソフトバンク/イー・モバイル音声端末の場合を示します。</dd> <dt id="ks_require_term_id_form"><code>ks_require_term_id_form($action, $method)</code></dt> <dd>端末 ID を要求するフォームを作ります。<br /> <code>$action:</code> フォームの送信先<br /> <code>$method:</code> post, get のいずれか</dd> <dt id="ks_inline_error_submit"><code>ks_inline_error_submit($value)</code></dt> <dd>必須項目不足などのエラーをインライン表示するコメントフォームを作るための送信ボタンを出力します。<br /> <code>$value:</code> 送信ボタンの表示内容 (デフォルトは <code>_e('Say It!')</code> です)</dd> <dt id="ks_do_comment_form_action"><code>ks_do_comment_form_action()</code></dt> <dd>コメントフォームで <code>do_action('comment_form', $post->ID);></code> を実行し、そのアクションで行なわれた画面出力を携帯電話向けに軽量化します。</dd> <dt id="ks_title"><code>ks_title()</code></dt> <dd>ページのタイトルを出力します。ブラウザーウィンドウのタイトルに使われます。<code>wp_title()</code> よりも短い表示になります。</dd> <dt id="ks_content"><code>ks_content()</code></dt> <dd>投稿本文を携帯電話向けに変換して出力します。del, style 要素の中身および JavaScript を削除/画像はより小さいサムネールもしくはリンクに変換/外部サイトへのリンクを中継ページ経由に変換/拙作の <a href="http://wppluginsj.sourceforge.jp/ktai_location/">Ktai Location</a> が挿入した位置情報 URL を削除など。</dd> <dt id="ks_get_content"><code>ks_get_content()</code></dt> <dd>携帯電話向けに変換する前の投稿本文を返します。</dd> <dt id="ks_check_password"><code>ks_check_password($message)</code></dt> <dd>パスワード保護された投稿かどうか確認します。保護されていないか、正しいパスワードが入力されれば、NULL を返します。保護されていて、かつ、パスワードが正しくなければパスワード入力フォームを返します。<br /> <code>$message</code>: 入力フォームの上に出すメッセージ</dd> <dt id="ks_time"><code>ks_time($year, $month_date, $time)</code></dt> <dd>現在日時に応じて適切に短縮した投稿日時を出力します。投稿日と現在が同じ年ならば年を省略、同じ年月日ならば年月日を省略します。日だけの表示はおかしいので、年月だけが同じのときは、年だけの省略となります。フォーマットに使う文字列は PHP の <code>date()</code> 関数と同じです。引数を省略すると、プラグイン設定画面に入力したフォーマットとなります。<br /> <code>$year</code>: 年月日を表示する場合のフォーマット (去年以前の日付)<br /> <code>$month_date</code>: 月日を表示する場合のフォーマット (今年の日付)<br /> <code>$time</code>: 時刻のフォーマット</dd> <dt id="ks_mod_time"><code>ks_mod_time($year, $month_date, $time)</code></dt> <dd>現在日時に応じて適切に短縮した修正日時を出力します。投稿日と現在が同じ年ならば年を省略、同じ年月日ならば年月日を省略します。日だけの表示はおかしいので、年月だけが同じのときは、年だけの省略となります。フォーマットに使う文字列は PHP の <code>date()</code> 関数と同じです。引数を省略すると、プラグイン設定画面に入力したフォーマットとなります。<br /> <code>$year</code>: 年月日を表示する場合のフォーマット (去年以前の日付)<br /> <code>$month_date</code>: 月日を表示する場合のフォーマット (今年の日付)<br /> <code>$time</code>: 時刻のフォーマット</dd> <dt id="ks_comment_datetime"><code>ks_comment_datetime($year, $month_date, $time)</code></dt> <dd>現在日時に応じて適切に短縮したコメント日時を出力します。コメント日と現在が同じ年ならば年を省略、同じ年月日ならば年月日を省略します。日だけの表示はおかしいので、年月だけが同じのときは、年だけの省略となります。フォーマットに使う文字列は PHP の <code>date()</code> 関数と同じです。引数を省略すると、プラグイン設定画面に入力したフォーマットとなります。<br /> <code>$year</code>: 年月日を表示する場合のフォーマット (去年以前の日付)<br /> <code>$month_date</code>: 月日を表示する場合のフォーマット (今年の日付)<br /> <code>$time</code>: 時刻のフォーマット</dd> <dt id="ks_pict_number"><code>ks_pict_number($num, $echo)</code></dt> <dd>数字の絵文字を返します。<br /> <code>$num</code>: 出力したい数字 (0〜9)。10 を与えると 0 を出力します。-1 以下の数値または11以上の数値を与えると□ (四角) を出力します。数字以外の値では何も返しません。<br /> <code>$echo</code>: TRUE の場合、画面に出力します。FALSE の場合、関数の返り値とします (デフォルト)。</dd> <dt id="ks_ordered_link"><code>ks_ordered_link($count, $max , $link, $label)</code></dt> <dd>携帯電話の絵文字を使った数字付きリストの出力を行います。リンク先を指定すると、その数字がアクセスキーとして使えるリンクになります。使用例は index.php を参照してください。<br /> <code>$count</code>: 出力したい数字。accesskey 用の番号にもなります。<br /> <code>$max</code>: 絵文字を使う最大値。これより <code>$count</code> が大きければ、絵文字の代わりに □ (四角) になります。<br /> <code>$link</code>: リンク先 URL<br /> <code>$label</code>: リンク文字列。この引数を省略すると、閉じタグ (</a>) は出力しません。 </dd> <dt id="ks_link_pages"><code>ks_link_pages($args = '')</code></dt> <dd><code>wp_link_pages()</code> の代わりとなる、分割ページ用ナビゲートタグです。パスワード保護された投稿で認証ずみの場合は、アンカーリンクではなく、隠しフィールドにパスワードを埋め込んだフォームボタンが表示されます。このため、パスワードの再入力なしにページ遷移が可能です。<br /> <code>$args</code>: 各種パラメーター (<code>wp_link_pages()</code> と同じ仕様)</dd> <dt id="ks_pagenum"><code>ks_pagenum($before, $after)</code></dt> <dd>指定したコンテンツが複数ページに分かれている場合、現在のページ番号を出力します。1ページのみの場合は何も出力されません。例えば、2007年9月の記事が2ページに渡る場合、1/2, 2/2 などと表示されます。</dd> <dt id="ks_previous_post_link"><code>ks_previous_post_link($format, $link, $in_same_cat, $excluded_categories, $accesskey)</code></dt> <dd>前の投稿へのナビゲーションリンクを出力します。引数は <code>previous_post_link()</code> と同じものに、<code>$accesskey</code> が追加されています。<br /> <code>$accesskey</code>: アクセスキー文字</dd> <dt id="ks_next_post_link"><code>ks_next_post_link($format, $link, $in_same_cat, $excluded_categories, $accesskey)</code></dt> <dd>次の投稿へのナビゲーションリンクを出力します。引数は <code>next_post_link()</code> と同じものに、<code>$accesskey</code> が追加されています。<br /> <code>$accesskey</code>: アクセスキー文字</dd> <dt id="ks_previous_posts_link"><code>ks_previous_posts_link($label, $accesskey)</code></dt> <dd>前ページへのナビゲーションリンクを出力します。<br /> <code>$label</code>: リンク文字列 (デフォルトは ≪*.前)<br /> <code>$accesskey</code>: アクセスキー文字 (デフォルトは *)</dd> <dt id="ks_next_posts_link"><code>ks_next_posts_link($label, $accesskey, $max_page)</code></dt> <dd>次ページへのナビゲーションリンクを出力します。<br /> <code>$label</code>: リンク文字列 (デフォルトは #.次≫)<br /> <code>$accesskey</code>: アクセスキー文字 (デフォルトは #)<br /> <code>$max_page</code>: 最大ページ数 (通常は指定不要)</dd> <dt id="ks_posts_nav_link"><code>ks_posts_nav_link($sep, $before, $after, $prev_label, $next_label, $prev_key, $next_key)</code></dt> <dd>前後のページへのナビゲーションリンクを出力します。前後のページがないときは何も出力しません。<br /> <code>$sep</code>: 間に挟まれる分離文字列。<br /> <code>$before</code>: ナビゲーションの前に付ける HTML タグ<br /> <code>$after</code>: ナビゲーションの後ろに付ける HTML タグ<br /> <code>$prev_label</code>: 前ページを示す文字列 (デフォルトは ≪*.前 )<br /> <code>$next_label</code>: 次ページを示す文字列 (デフォルトは #.次≫ )<br /> <code>$prev_key</code>: 前ページのアクセスキー文字 (デフォルトは *)<br /> <code>$next_key</code>: 次ページアクセスキー文字 (デフォルトは #)</dd> <dt id="ks_posts_nav_multi"><code>ks_posts_nav_multi($num, $first, $last, $prev_key, $next_key)</code></dt> <dd>複数の前後ページおよび先頭・末尾ページへのナビゲーションリンクを出力します。accesskey は表示されませんが前後ページへ移動に対応しています。<br /> <code>$num</code>: 前後何ページリンクするかの数<br /> <code>$first</code>: 「先頭」を示す文字列<br /> <code>$last</code>: 「末尾」を示す文字列<br /> <code>$prev_key</code>: 前ページのアクセスキー文字 (デフォルトは *)<br /> <code>$next_key</code>: 次ページアクセスキー文字 (デフォルトは #)</dd> <dt id="ks_posts_nav_dropdown"><code>ks_posts_nav_dropdown()</code></dt> <dd>ポップアップ (ドロップダウン) 式のページナビゲーションを出力します。ページ数が多くて吐き出す XHTML のサイズが携帯電話の制限を越える場合は、出力が抑制されます。index.php では抑制される可能性が高いため使用しないでください。附属テンプレートでは archive.php にのみ使用しています。</dd> <dt id="ks_get_comments_list_link"><code>ks_get_comments_list_link($id)</code></dt> <dd>コメント一覧ページを示す URL を返します。<br /> <code>$id</code>: 対象とする投稿 ID。投稿ループの中では空でよい。</dd> <dt id="ks_comments_link"><code>ks_comments_link($icon, $zero, $one, $more, $none, $sec, $accesskey)</code></dt> <dd>コメント数を表示し、コメント一覧へのリンクとして出力します。<br /> <code>$icon</code>: リンクの前に置く絵文字。NULL を渡すとデフォルトの「メモ用紙」絵文字になります。絵文字なしにするには空文字列を渡してください。<br /> <code>$zero</code>: コメントなしを示す文字列<br /> <code>$one</code>: コメント1件を示す文字列<br /> <code>$more</code>: コメント2件以上を示す文字列。「%」があればコメント数に置換されます。<br /> <code>$none</code>: コメント停止中を示す文字列。これを表示する場合、コメント一覧ページへのリンクはされません。<br /> <code>$sec</code>: パスワード保護している投稿を示す文字列<br /> <code>$accesskey</code>: アクセスキー文字列 (デフォルトはなし)</dd> <dt id="ks_comments_post_url"><code>ks_comments_post_url($id)</code></dt> <dd>コメント投稿フォームへのリンク URL を返します。<br /> <code>$id</code>: 投稿 ID</dd> <dt id="ks_comments_post_link"><code>ks_comments_post_link($label, $before, $after, $icon, $accesskey)</code></dt> <dd>コメント投稿フォームへのリンクを出力します。<br /> <code>$label</code>: リンク先の説明<br /> <code>$before</code>: リンクの前に置く文字列 (絵文字等)<br /> <code>$after</code>: リンクの後に置く文字列<br /> <code>$icon</code>: リンク先説明の前に置く絵文字 (デフォルトは鉛筆の絵)<br /> <code>$accesskey</code>: アクセスキー文字 (デフォルトはなし)</dd> <dt id="ks_back_to_post"><code>ks_back_to_post($icon, $label, $accesskey)</code></dt> <dd>記事に戻るリンクを出力します。<br /> <code>$icon</code>: リンクの前に置く絵文字<br /> <code>$label</code>: リンク先の説明<br /> <code>$accesskey</code>: アクセスキー文字 (デフォルトはなし)</dd> <dt id="ks_get_recent_comments"><code>ks_get_recent_comments($num, $type, $group_by_post)</code></dt> <dd>最新コメント一覧を配列で返します。デフォルトでは2次元配列になります (後述)。<br /> <code>$num</code>: コメント表示数<br /> <code>$type</code>: コメントの種類を示す文字列<br /> (なし): コメント・トラックバック・ピンバックを混在<br /> comment: コメントのみ<br /> trackback: トラックバックのみ<br /> pingback: ピンバックのみ<br /> trackback+pingback: トラックバック・ピンバックを混在<br /> <code>$group_by_post</code>: コメントを投稿ごとにまとめるかどうか (デフォルト TRUE)。TRUE の場合、同じコメントへの投稿をまとめて、2次元配列とします。1次元目は投稿 ID をキーとしたコメントオブジェクトの配列です。FALSE の場合、コメントオブジェクトの配列です。</dd> <dt id="ks_category"><code>ks_category($separator)</code></dt> <dd>表示している投稿が属するカテゴリーの一覧を出力します。<br /> <code>$separator</code>: カテゴリーごとの区切り文字列</dd> <dt id="ks_tags"><code>ks_tags($before, $after, $separator)</code></dt> <dd>表示している投稿に付与されているタグ一覧を出力します。タグが付いてないときは何も出力しません。<br /> <code>$before:</code> 一覧の前に置く文字列 (絵文字等)<br /> <code>$after:</code> 一覧の後に置く文字列<br /> <code>$separator:</code> タグごとの区切り文字列</dd> <dt id="ks_tag_cloud"><code>ks_tag_cloud($args)</code></dt> <dd>タグクラウドを出力します。<code>wp_tag_cloud()</code> と同じ動作をしますが、余計な空白や title 属性、rel 属性などを除去しています。</dd> <dt id="ks_get_archives"><code>ks_get_archives($args)</code></dt> <dd>アーカイブ一覧を出力します。<code>wp_get_archives()</code> の結果から、余計な空白や title 属性を除去して出力します。<br /> <code>$arg: ks_get_archives()</code> と同じ仕様のパラメーター</dd> <dt id="ks_list_bookmarks"><code>ks_list_bookmarks($args)</code></dt> <dd>ブックマーク(ブログロール)一覧を出力します。<code>wp_list_bookmarks()</code> の結果から、余計な空白や title, rel 属性を除去して出力します。<br /> <code>$arg: wp_list_bookmarks()</code> と同じ仕様のパラメーター</dd> <dt id="ks_pages_menu"><code>ks_pages_menu($sep, $before, $after, $args)</code></dt> <dd>固定ページへのナビゲーションを出力します。デフォルトは親ページのみです。子ページが存在する場合、親ページ一覧のあとに、「ページ一覧ページ」(menu_pages.php) へのリンクが出ます。<br /> <code>$sep</code>: 項目ごとの区切り<br /> <code>$before</code>: 前に付ける HTML タグ<br /> <code>$after</code>: 後ろに付ける HTML タグ<br /> <code>$args</code>: 表示用パラメーター。<code>get_pages()</code> の引数が使えます。さらに、'parent_only=0' とすると、すべてのページをリストアップし、'echo=0' を入れると出力するかわりに HTML を返り値とします。</dd> <dt id="ks_switch_pc_view"><code>ks_switch_pc_view($before, $after)</code></dt> <dd>スマートフォン等「その他」端末の場合、PC 表示に切り替えるかリンクを出力します。<br /> <code>$before</code>: リンクの前に置く文字列<br /> <code>$after</code>: リンクの後に置く文字列</dd> <dt id="ks_switch_inline_images"><code>ks_switch_inline_images($before, $after)</code></dt> <dd>各社 3G, WILLCOM, スマートフォン等で、画像をインライン表示するかリンクに変換するかの切り替えメニューを出力します。<br /> <code>$before</code>: メニューの前に置く文字列<br /> <code>$after</code>: メニューの後に置く文字列</dd> </dl> <h4 id="splitting">ページ分割機能用タグ</h4> <dl> <dt><code><!--start paging--></code></dt> <dt><code><!--end paging--></code></dt> <dd>ページ分割機能において、分割対象領域を示します。この2つに挟まれた区間が分割され、前者より上/後者より下にある XHTML コードはすべてのページに出力されます (共通領域)。前者が存在しないときは <body> タグ、後者が存在しないときは「<hr /><a name="tail"」という文字列もしくは </body> タグを代わりに使います。<br /> なお、共通領域が広くて分割に使えるバイト数があまりに少ないとき (256 バイト未満) は、強制的に <body>〜ページ終端を分割対象とします。</dd> </dl> <h3 id="relate_with_other_plugins">他のプラグインとの連携</h3> <p>他のプラグインにおいて、PC 向け出力か携帯電話出力かを区別できるよう、以下の関数を用意しています。</p> <dl> <dt><code>is_ktai()</code></dt> <dd>携帯電話出力なら、事業者名を返します。DoCoMo, KDDI, SoftBank, WILLCOM, EMOBILE, Unknown のいずれかです。ディズニー・モバイルは SoftBank になります。</dd> </dl> <p>本プラグインが有効・無効にかかわらずエラーが出ないよう、次のようにして使ってください。</p> <pre>if (function_exists('is_ktai') && is_ktai()) { ?> <img localsrc="334" alt="[new] " /> <?php }</pre> <p>次は、携帯電話<strong>でない</strong>場合にスタイルシートを追加する例です。この判別方法は、Mobile Eye+ を使っている場合や、<a href="http://wphoneplugin.org/">WPhone Admin Plugin</a> をインストールしている場合にも対応します。</p> <pre>if ((! function_exists('is_mobile') || ! is_mobile()) && (! function_exists('is_ktai') || ! is_ktai())) { ?> <style type="text/css" media="all"> .locationurl { display:none; } </style> <?php }</pre> <p>以前は、原則として <code>is_mobile()</code> 関数を提供し、WPhone Admin Plugin が存在するときのみ、名前の衝突を避けるため <code>is_ktai()</code> に名前を変えていました。</p> <p>しかし、WPhone プラグインの提供する is_mobile() 関数は SoftBank PDC 端末を検出しないことが判明したため、<code>is_mobile()</code> だけで携帯電話かどうかの判定を行うことができず、<code>is_ktai()</code> 関数も併用する必要が出てしまいました (具体的なコードは上記の通り)。</p> <p>そうなると、Mobile Eye+ との互換性を取るために、Mobile Eye+ でも使っている関数名である <code>is_mobile()</code> という名前にする、という措置も無意味となってしまいました。このため、バージョン 0.98 より <code>is_ktai()</code> 関数に一本化することとしました。</p> <p># WPhone Admin Plugin の作りが悪い、とも言えますね ;-)</p> </body> </html>