doudonn WEB制作やサーバーの話とかいろいろ

ワードプレスの条件分岐を最適にして高速化する方法

doudonn 更新日:
ワードプレスの条件分岐を最適にして高速化する方法

ワードプレスの条件分岐の最適化

条件分岐がやたら多くなるのがワードプレス。
高速化を意識すればけっこう速くなります。

簡単ながら効果のある方法を4つ紹介します。

1、条件分岐の書き方(noindexの場合)

<悪い書き方>

<?php if( is_paged() || is_date() || is_author() || is_search() || is_404()) { ?>
<meta name="robots" content="noindex">
<?php } ?>

<良い書き方>

<?php
if(!is_single()){
if(!is_home()){
if(!is_page()){
?>
<meta name="robots" content="noindex">
<?php
}
}
}
?>

「if」は条件が多いほど処理が遅くなる。
そのため、一番可能性が高いものを単独で判別する。
地味ながらけっこう速くなります。

2、条件分岐の書き方(titleタグの場合)

<良い書き方>

<title><?php
if(is_single()){
echo $post->post_title;
}elseif(is_home()){
bloginfo('name');
}elseif(is_page()){
echo $post->post_title;
}elseif(is_category() || is_tag()){
single_term_title();echo "の記事一覧 ";bloginfo('name');
}elseif(is_search()){
echo get_search_query();echo "の検索結果 - ";bloginfo('name');
}else{
bloginfo('name');
}
?></title>

同じように一番速度を上げたい記事ページを最初に書きます。
固定ページも別に分ける。

3、botかどうかの条件分岐の場合

<?php
if(is_search_engine_bot()){
$isbot = 1;
}else{
$isbot = 0;
}

//次回からはこれで分岐
if($isbot == 1){

}
?>

botかどうかを判別する関数を使っている人は多いだろう。
こういうのは一度判別すればいい。
変数に落として、2回目からはそれで判別しよう。

別のテンプレートでも使う場合は「global $isbot;」を記載してください。

4、モバイルかどうかの条件分岐の場合

<?php
if(is_mobile()){
$ismobile = 1;
}else{
$ismobile = 0;
}

//次回からはこれで分岐
if($ismobile == 1){

}
?>

botと同じ。

まとめ

順番を意識。
そして、判別関数の実行は一度だけにする。

特にbot・モバイル判定の処理は重くなりがちなので、
絶対に一度だけにしてください。
簡単ながら確実に速くなります。

--

ワードプレスの関連記事

記事一覧はこちら:ワードプレス

管理人について
doudonn
名前:doudonn(どうどん)
ひたすらWEB制作な人。
一応社長です。音ゲー好き

<Twitterはこちら>
ゲーム垢
WEB制作垢
お知らせ

2022年11月30日に全記事削除しました。
まだ再開に向け作りかけ。


無駄にページ表示速度にこだわってます。

役立ちサイト
wiki
© 2022-2023 doudonn All Rights Reserved.