【WordPress】canonicalタグの設定(カスタム投稿タイプにも対応)
ミュージシャンのホームページに特化したWordPressテーマ「zousanrecords」を制作しています太田ヒロシです。
canonicalタグについて設定を見直したので今回はそのレポートです。
canonicalタグとは?
まず、canonicalタグってなに?ということなんですけど、こちらの記事が分かりやすかったです↓
要は、「このページのURLはこうですよー」と検索エンジンに伝えるためのものです(あってる?)。
WordPressでのcanonicalタグ設定
canonicalタグはheader内に記述します。
HTMLサイトであれば1ページづつ書き分ければ良いのですが、WordPressサイトの場合、header部分はheader.phpというファイルを全ページ共通して読み込むので各ページに対応するにはひと工夫が必要です。
で、参考にさせていただいたのがこちらの記事↓
関数を使ってfunctions.phpに記述すれば全ページに対応してくれる、というものです。
ただ、通常のブログサイトならこちらの記事内の記述だけで良かったのですが、、カスタム投稿タイプとタクソノミーには対応してませんでした。これらに対応するにはさらに追記が必要です。
結果、自分なりにカスタム投稿タイプとタクソノミーにも対応する形でfunctions.phpに記述したのが以下↓
remove_action('wp_head', 'rel_canonical');
add_action( 'wp_head', 'add_canonical' );
function add_canonical() {
$canonical = null;
if( is_home() || is_front_page() ) { //トップページ
$canonical = home_url('/');
} elseif ( is_post_type_archive() ) { // カスタム投稿タイプ
$canonical = get_post_type_archive_link( get_query_var('post_type') );
} elseif ( is_tax() ) { //タクソノミー
$canonical = get_term_link(get_queried_object()->term_id);
} elseif ( is_category() ) { //カテゴリー
$canonical = get_category_link( get_query_var('cat') );
} else if(is_tag()){ //タグ
$canonical = get_tag_link(get_queried_object()->term_id);
} elseif ( is_search() ) { //検索ページ
$canonical = get_search_link();
} elseif ( is_page() || is_single() ) { //固定ページ・シングルページ
$canonical = get_permalink();
} else{ //その他のページ
$canonical = home_url('/');
}
echo '<link rel="canonical" href="'.$canonical.'">'."\n";
}
(おかしなところがあったら教えてください)
これでカスタム投稿タイプにも
タクソノミーにも
にも対応できました。
まとめ
というわけでさっそくzousanrecordsのアップデートにも反映させました!
------------------------------
zousanrecordsはクラシック演奏家からロックバンド、アイドルグループまで幅広いジャンルでご利用いただいております。
先日、無料版のダウンロード数が250を突破しました!
最近ではミュージシャンにこだわらず広くクリエイター、アーティストにも使っていただけるWordPressテーマ、(最近は劇団のホームページを作りました)
イベントの特設サイトに使えるWordPressテーマも作ってます。