*プログラミング超初心者です。閲覧していただいた方にわかりやすい表現を意識していますが
①分かりにくい点
②間違っている点
ありましたら、ご指摘ください🙏
それでは早速
STORKを使用したWebサイトに発生したエラーを解決する
【症状】
Webサイトの上部にエラーメッセージが表示される
メッセージ本文
"Notice:Undefined variable:icon in /~ファイルパス省略~/wp-content/themes/jstork/library/shortcode.php on line 226"
【状況】
・テーマをアップデートしたら発生した
・吹き出しを使用しているページに表示されるっぽい(←サイト運営者推察)
【やったこと】
エラーメッセージを読んでみる
(ファイルパス省略)/library/shortcode.php の226行目にある"$icon"ってなんですの?の意味-
(ファイルパス省略)/library/shortcode.php 226行目を確認する
- 方法1:サーバーからローカル環境に本番環境を構築して確認する
- FTPソフトにて"jstork"をローカルのwordpress環境>wp-content>themeの中にダウンロード
- > JSTORK > library > shortcode.php を選択し226行目の記述内容を確認する...①
- 方法2:管理画面から確認してみる方法
- WordPress管理画面 > 外観 > テーマエディターに進んで”stork(親テーマ本体)”を選択 > ①を実行
- 方法1:サーバーからローカル環境に本番環境を構築して確認する
-
記述の内容を確認(以下コードのコピペ)
// コンテンツボックス function contentboxFunc($atts , $content = null) { ...A if($atts && $content) { $class = (isset($atts['class'])) ? esc_attr($atts['class']) : null; | $title = (isset($atts['title'])) ? esc_attr($atts['title']) : null; | $type = (isset($atts['type'])) ? ' type_'.esc_attr($atts['type']) : ' type_normal'; |....B if(!$title && $class) { |....C return '<div class="c_box ' . $class . $type .'">' . $icon . do_shortcode($content) . '</div>';|...D* } elseif($title && $class) { return '<div class="c_box intitle ' . $class . $type .'"><div class="box_title"><span class="span__box_title">' . $icon . $title . '</span></div>'. do_shortcode($content) .'</div>'; |...D* } } } add_shortcode('box','contentboxFunc'); ↑この中でエラーが発生していた。
-記述の内容の概要-
A:ファンクションcontentboxFuncをこう定義しまっせー
B:このファンクションで使う変数はこれらでっせー
C:さあ実行しましょう!
D*:$iconて何?! <-ここがエラー
4.上記を受けてBのなかに$iconを定義する一文を追記しました(221行目)
218行目 $class = (isset($atts['class'])) ? esc_attr($atts['class']) : null;
219 $title = (isset($atts['title'])) ? esc_attr($atts['title']) : null;
220 $type = (isset($atts['type'])) ? ' type_'.esc_attr($atts['type']) : ' type_normal';
221 $icon = (isset($atts['icon'])) ? esc_attr($atts['icon']) : null;*
意味:もし、$attsの中のiconが入力されていたらiconのURLを$iconに入れる、そうでなければ$iconにnullを入れる..(この解釈ちょっと怪しい。)
以上の処理でエラーは表示されなくなりました。
【やってみて思ったこと】
・管理画面からファイルを編集することもできるけど、本番環境での調整になるので
ローカル環境にダウンロードして作業した方が、心理的にもエラーが発生するリスク回避の面でも
メリットがある。
・予想していたショートコードに関するエラーではなかったので、実際に発生している事象は自分の目で
確認する。
忘備録と自分log