【WordPress】titleタグを、投稿タイプ別で切り替える方法

  • このエントリーをはてなブックマークに追加
テンプレートのカスタマイズ title編

私がWPでサイト(ブログじゃないよ)を作る時、
・投稿・・・お知らせ系
・固定ページ・・・一般的なページ(会社概要みたいな)
・カスタム投稿・・・商品ページ

だいたいこんな感じで使い分けます。
記事のタイプ別によって、WPの機能を使い分けてる感じですね。
機能を適切に使うため、っていうのもあるけど、同時に、実際に更新する人にとって分かりやすく簡単になるようにしてあります。

で。だいたいいつもtitleタグ回りのソースコードは使いまわしているので(苦笑)、
今回はそれをここにアップ。これでテンプレートファイルを探し回らなくて済むかな…(苦笑)

titleタグを条件分岐

私は、カスタム投稿タイプとカスタムタクソノミーもよく使うので、それもtitleの表示の条件分岐に入ってます。
表示される形は、
・トップページ・・・サイト名
・固定ページ・・・ページタイトル | サイト名
・カスタムタクソノミーのアーカイブページ・・・カスタムタクソノミー名 | サイト名
・その他アーカイブページ・・・カスタム投稿タイプ名 | サイト名
・個別記事ページ・・・投稿記事タイトル | サイト名

<title>
    <!--トップページの時-->
    <?php if(is_home()):  ?>
                <?php bloginfo('name'); ?>
    <!--固定ページの時-->
    <?php elseif(is_page()): ?>
                <?php wp_title(''); ?> | <?php bloginfo('name'); ?>
    <!--カスタムタクソノミーのアーカイブページの時-->
    <?php elseif(is_tax()): ?>
                <?php $taxonomy = get_taxonomy(get_query_var('taxonomy'));
                        echo sprintf('%s', single_term_title('', false)); ?> | <?php bloginfo('name'); ?>
    <!--アーカイブページの時-->
    <?php elseif(is_archive()): ?>
                <?php echo esc_html(get_post_type_object(get_post_type())->label ); ?> | <?php bloginfo('name'); ?>
    <!--投稿個別記事ページの時-->
    <?php elseif(is_single()): ?>
                <?php wp_title(''); ?> | <?php bloginfo('name'); ?>
    <?php endif; ?>
</title>

タグの解説を簡単に。

get_taxonomy・・・タクソノミーの情報を取得する

get_taxonomy()
()内で指定したタクソノミー名の情報を返す。
戻り値・・・’label(ラベル)’ , ‘name(タクソノミー名)’ , ‘public(公開について)’ などのオブジェクト

get_query_var・・・public_query_varsを取得

get_query_vars
グローバル変数$wp_queryの中にある、現在表示中のページの情報を取得する。

get_post_tyep・・・投稿タイプを取得する

get_post_type()
()内で指定した投稿、または現在表示している投稿の投稿タイプを返す
戻り値・・・’post’ , ‘page’ , ‘attachment’ , ‘revision’ , ‘カスタム投稿タイプ’ などの文字列

get_post_type_object・・・投稿タイプの情報を取得する

get_post_type_object( '投稿タイプ名' )
()内で指定した投稿タイプの、情報を返す
戻り値・・・’description’ , ‘name’ , ‘public’ などのオブジェクト




Leave a Reply

  • (will not be published)

CAPTCHA