Blog

User Agentによるテンプレートの切り換え

ind scr

このサイトの話ではないけど、Wordpressで作ったサイトをiPhoneに対応するためにUser Agentによってテンプレートを切り替えるというのをやったのでメモ書き。

<?php
$UA = $_SERVER{’HTTP_USER_AGENT’};
if(substr_count($UA,’iPhone’)){
include(TEMPLATEPATH.’/iphone_index.php’);
}else{
?>

(通常のWordpressテンプレート)

<?php } ?>

やってることは無茶苦茶単純で、

1.User Agentに「iPhone」という文字列が入っているかどうかのチェック。
2.iPhoneの場合に専用のテンプレートをinclude。
3.それ以外の場合は通常のテンプレートを適用。

という流れ。

注意すべきなのは、index.phpで全部分岐しようとすると優先度の高い名称のファイル(例えばcategory.php、single.phpなど)が存在する場合はそちらが優先されてしまうので、各テンプレートで分岐したほうが無難という点くらい。

iPhoneでサイトを見ていると、やっぱりiPhone用のサイトの方が圧倒的に使いやすい。と言って、CSSのみで無理して対応するのも、PC、iPhoneの両方のサイトに構造的な制約がついてしまうことがある。
そうであれば、そこまで難しい話でもないし、ひと手間加えてiPhone用のテンプレートを入れるのがよりベターだと思う。

WordPressでサイトを作る場合に便利なプラグイン

今回のサイトリニューアルにあたって、プラグインを2つ追加してます。
2つともとても便利なので、メモ書き。

■Archives for a category
» プラグインのダウンロード

カテゴリーごとの月別アーカイブメニューを出力するプラグイン。
アーカイブでカテゴリーが混ざってしまうと、具合の悪い場合に重宝する。
使い方もWordPressのwp_get_archivesを拡張しているような感じなので、テンプレートに

<?php wp_get_archives(’show_post_count=true&cat=7′); ?>

と記述すれば動く。(この例の場合はカテゴリーID7のアーカイブメニューを表示する)

ただし、独自にパーマリンク設定をしていると動作しないため、プラグインの設定画面で「Disable canonical URLs.(正しいURLを無効にする)」にチェックを入れる必要がある。

■Custom Query String
» プラグインのダウンロード

コンディショナル、およびカテゴリーごとにエントリーの表示件数を変更するプラグイン。
Wordpressの設定では、すべてのアーカイブの件数の設定はできるが、トップページでは5件表示、アーカイブでは10件といった細かい調整をしたい場合に重宝する。

使い方はプラグインの設定画面で、コンディショナルの場合は上段、カテゴリーの場合は下段で、表示件数を入力してAddを押すだけ。

■その他
» CMSとしてのWordPressでサイト構築をするときに便利な13のプラグイン(5509)

こちらのサイトでも、定番のAll in One SEO Pack、Google Sitemap Generatorや、入力支援のプラグインなどを紹介されてます。
ご参考までに。

All in One SEO Packでメタデータが出力されてなかった件

このサイトではAll in One SEO Packを、ありがたく使わせてもらってます。
おかげで「タイトルタグの重複」問題も解決できて、よかったよかったと思ってたのですが、よく見たら、keywordとかmetaデータが何も出力されてない。

「あれ?」と思って、バージョンアップとか色々やってみたのだけど、全然出力されない。
色々調べてみたんだけど、解決策も出てこない。
で、試してみた。

結論。
「<?php wp_head(); ?>がテンプレートから抜けてた!」

いやいや。
これは気づかなかった orz

追記:
<?php wp_head(); ?>は<head>タグの中に入れれば動きますよん。
参考サイト
» wp_head()の使用法(muzin)

Page 1 of 512345