Notice: Undefined index: post_typeの対応

概要説明

値が設定されていないのに参照しようとして表示されるNotice(お知らせ)。エラーや警告ではないのでそのままでも問題は有りませんがログを出さないようにしたい方はisset()などで対応を行いましょう。

定義されていない情報を参照していることが原因

$post_type = $wp_query->query['post_type'];

今回問題となった記述。一見問題ないような記述ですがパラメーターが設定されていない場合が考慮されていません

// 三項演算子版
$post_type = isset($wp_query->query_vars['post_type']) ? $wp_query->query_vars['post_type'] : false;

// if で分岐
if ( isset($wp_query->query_vars['post_type']) ) {
    // 定義されている場合
    $post_type = $wp_query->query_vars['post_type'];
} else {
    $post_type = false;
}

対応方法 – isset

動的な値の取得については定義されているかどうか isset() を使うことで対応できます。

Undefined index系のエラーはisset()で分岐を入れることで対応ができます。

関連機能

  1. Notice: ob_end_flush(): failed to delete and flush buffer. No buffer to delete or flush inの対応

  2. WordPressページで404 not foundの場合にトップページにリダイレクトを行う

  3. WordPress 「現在メンテナンス中のため、しばらくの間ご利用いただけません。」画面を解除する方法

サイドバー

よく使うカスタマイズ

最近の記事

アニメの名言集

その誇りは
どんな法律や規則よりも大切なものだ

ソードアート・オンライン
by キリト

Profile

PAGE TOP