ワードプレスの自作テンプレ作りでよく使うコードまとめ

パルどう@法人6期目 更新日:2021/08/01
ワードプレスの自作テンプレ作りでよく使うコード

自分でテンプレを作る際によく使うコードをまとめました。

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全般を拒否したい場合はこちらの記事を見てください。

2021年7月更新!アクセス拒否するbot一覧!(.htaccess)

関連記事
管理人について

名前:パルどう
WEBサイトを作り続けて20年以上…
法人6期目。必死に仕事中…