ワードプレスの自作テンプレ作りでよく使うコードまとめ
パルどう@法人9期目 更新日:
自分でテンプレを作る際によく使うコードをまとめました。
1、タイトルタグ
トップページはサイト名、記事は記事名のみ。
そんなシンプルな設定です。
<title>
<?php if(is_home()): ?>
<?php bloginfo('name'); ?>
<?php elseif(is_page() || is_single()): ?>
<?php echo trim(wp_title('', false));?>
<?php elseif(is_category() || is_tag()): ?>
<?php single_term_title(); ?>の記事一覧 - <?php bloginfo('name'); ?>
<?php elseif(is_month()): ?>
<?php the_time("Y年m月") ?>の記事一覧 - <?php bloginfo('name'); ?>
<?php elseif(is_year()): ?>
<?php the_time("Y年") ?>の記事一覧 - <?php bloginfo('name'); ?>
<?php elseif(is_search()): ?>
「<?php echo get_search_query(); ?>」の検索結果 - <?php bloginfo('name'); ?>
<?php else: ?>
<?php bloginfo('name'); ?>
<?php endif; ?>
</title>
2、noindex
SEO的にインデックスしても意味がないページをnoindex。
〇ページ目、2020年の記事、とかですね。
//個人的な基本
<?php if( is_paged() || is_date() || is_author() || is_search() || is_404()) : ?>
<meta name='robots' content='noindex,follow' />
<?php endif; ?>
//トップページと記事だけインデックスさせる場合
<?php if( is_archive() || is_page() || is_paged() || is_date() || is_author() || is_search() || is_404()) : ?>
<meta name='robots' content='noindex,follow' />
<?php endif; ?>
3、CSSのリンク
CSSファイルの更新日を末尾にクエリで追加する。
こうするとCSSを更新すると必ず最新版が反映される。
<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_url'); echo '?' . filemtime( get_stylesheet_directory() . '/style.css'); ?>">
3、PC・モバイルの振り分け
これをfunction.phpに入れる。
※もうblackberryとかは要らないかもしれない。
<?php
function is_mobile(){
$useragents = array(
'iPhone', // iPhone
'iPod', // iPod touch
'Android.*Mobile', // 1.5+ Android *** Only mobile
'Windows.*Phone', // *** Windows Phone
'dream', // Pre 1.5 Android
'CUPCAKE', // 1.5+ Android
'blackberry9500', // Storm
'blackberry9530', // Storm
'blackberry9520', // Storm v2
'blackberry9550', // Storm v2
'blackberry9800', // Torch
'webOS', // Palm Pre Experimental
'incognito', // Other iPhone browser
'webmate' ,// Other iPhone browser
'Mobile.*Firefox', // Firefox OS
'Opera Mini', // Opera Mini Browser
'BB10', // BlackBerry 10
);
$pattern = '/'.implode('|', $useragents).'/i';
return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}
?>
使う時はこう。
<?php if(is_mobile()) : ?>
スマホ向けの表示を書く
<?php else: ?>
パソコン向けの表示を書く
<?php endif; ?>
5、canonical
記事ページ&固定ページは自動で挿入されるので不要。
トップページとカテゴリ・タグの1ページ目のみ入れます。
<?php if(is_home() && !is_paged()):?>
<link rel="canonical" href="<?php echo home_url() ?>">
<?php elseif(is_category() && !is_paged()): ?>
<link rel="canonical" href="<?php echo get_category_link(get_query_var('cat')) ?>">
<?php elseif(is_tag() && !is_paged()): ?>
<link rel="canonical" href="<?php echo get_tag_link(get_query_var('tag_id')) ?>">
<?php endif; ?>
6、アナリティクスタグ
ログイン状態の時はコードを入れない。
アドセンスにしても良い。
<?php if( !is_user_logged_in() ) : ?>
ここにアナリティクスのタグ
<?php endif; ?>
7、検索エンジンbotには表示させない条件分岐
次をfunction.phpに入れる。
function is_search_engine_bot(){
$useragents = array(
'googlebot',
'bingbot',
'Yandex',
);
$pattern = '/'.implode('|', $useragents).'/i';
return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}
botには非表示にする部分にはこうする。
<?php if(!is_search_engine_bot()) : ?>
ここにgooglebotには非表示にするコード
<?php endif; ?>
botには必ずキャッシュしたファイルを使うなど、このbot対応は必須です。
悪質なbot全般を拒否したい場合はこちらの記事を見てください。