WordPressを使ってサイトを作っている場合に、ケータイ電話で表示できるようにするにはプラグインを利用しなくてはならない。
そこで、Ktai Styleというプラグインを導入した。見える部分も見えない部分もすごく良くできていて感動している。
そんな感じで、ちょこちょことテーマをいじっているのだけれど、ks_pages_menu()を使ってページのリストを作るとケータイ版では表示させたくないものがどうしても出てくる。例えば、Contact Form 7を使ったメールフォームをページで管理している場合にケータイではAjaxが使えないのでメールフォームが動作せず不要なページになってしまう。
そこで、そういったケータイ版では表示したくないページをリストさせない方法。
ks_pages_menu()は、第4引数でget_pages()の引数を指定できるので、
ks_pages_menu('separator', 'before', 'after', 'exclude=xxx')
というような感じにしてexcludeで除外したいページを指定する。
ためになるねぇ~。ためになるよぉ~。
[追記1]
PC版に自動で挿入される、モバイルサイトを指し示すリンク要素はどうやって削除しようか?
<link rel="alternate" media="handheld" href="http://hogehoge.com/" />
[追記2]
追記1の問題は、アクセスされたくないページへアクセスされてしまうことが問題なのだけれど、リンク要素以外にもアクセスされてしまう可能性はある(例えば、Popularity Contestでメールフォームなどのページが上位に来てしまった場合など)。なので、発想を転換し、ページ自体へのアクセスはあるものと考え、is_ktai()を上手に使い当該ページはケータイでは無効であることをユーザーに伝える。
<?php
if (function_exists('is_ktai') && is_ktai()) {
// ケータイからアクセスがあった場合はこの部分が表示される
}
if (function_exists('is_ktai') && !is_ktai()) {
// ケータイ以外からアクセスがあった場合はこの部分が表示される
// もちろんelseを使っても良い
}
?>