未分類
0

Ktai Styleヘッダー内でtitleタグ分岐

ケータイ(ガラケー・フィーチャーフォン)への対応が可能となるプラグインKtai Style
言わずと知れた定番中の定番!超有名プラグインです。

プラグインKtai Styleを使って携帯画面用のテンプレートをカスタマイズ。
ヘッダー内(header.php)の<title></title>をトップページ・通常投稿・カスタム投稿タイプごとに、カスタムフィールドの値を利用すいて分岐する際に軽くハマってしまったのでメモ!

WordPress(ワードプレス)通常テーマでは、

<?php if(is_single()): ?>
<?php if ( get_post_type() === 'カスタム投稿タイプA' ): ?>
<title><?php echo post_custom("サブタイトル"); ?></title>
<?php elseif ( get_post_type() === 'カスタム投稿タイプB' ): ?>
<title><?php wp_title(); ?></title>
<?php else: ?>
<title><?php echo post_custom("サブタイトル"); ?>-<?php bloginfo('name'); ?></title>
<?php endif; ?>
<?php else: ?>
<title><?php wp_title(); ?></title>
<?php endif; ?>

と、header.phpのtitleタグを入れたい箇所に記述すれば下記のように分岐される。
・「カスタム投稿タイプA」のページの場合
<title>カスタムフィールド「サブタイトル」の値</title>
・「カスタム投稿タイプB」のページの場合
<title>ページタイトル</title>
・通常の「投稿」ページの場合
<title>カスタムフィールド「サブタイトル」の値 – ブログのタイトル</title>
・トップページなど上記3つ意外の場合
<title>ブログのタイトルor各ページタイトル‥</title>

これを、同じようにKtai Styleの専用テンプレートのheader.php内に記述しても上手く表示されない。

Ktai Styleテンプレートの場合には、まずヘッダーmetaタグ専用ファイルとして別ファイルを作成する。
仮にヘッダーmetaタグ専用ファイルを「headermeta.php」というファイル名で作成したとする。
「headermeta.php」へ、

<?php if(is_single()): ?>
<?php if ( get_post_type() === 'カスタム投稿タイプA' ): ?>
<title><?php $post = get_post($post_id); ?><?php echo get_post_meta($post->ID,'サブタイトル',true); ?></title>
<?php elseif ( get_post_type() === 'カスタム投稿タイプB' ): ?>
<title><?php ks_title(); ?></title>
<?php else: ?>
<title><?php $post = get_post($post_id); ?><?php echo get_post_meta($post->ID,'サブタイトル',true); ?>-<?php bloginfo('name'); ?></title>
<?php endif; ?>
<?php else: ?>
<title><?php ks_title(); ?></title>
<?php endif; ?>

のように記述して、UTF8で保存した上でアップロード。(注意:保存形式を間違えるとカスタムフィールドが表示されない)

この別ファイル「headermeta.php」を通常のheader.phpへインクルードする。
この時、

<?php include (TEMPLATEPATH . "/headermeta.php"); ?>

では読み込めない。
Ktai Styleの専用テンプレートでインクルードを読み込むには、

<?php include dirname(__FILE__) . '/headermeta.php';?>

のように記述する。

もっとシンプルなやり方があるとは思うが….とりあえずこれで狙い通りの分岐が可能になった!

ポイントは、

関連記事
固定ページ一覧表示のリストタイトルをカスタムフィールドにする~get_posts
条件分岐で表示切り替えのまとめ
保護中: Myメモ:n-a.c