LoginSignup
0
0

More than 3 years have passed since last update.

Word Pressテーマ:STORKを使用したWebサイトに発生したエラーを解決するために行った処理

Posted at

*プログラミング超初心者です。閲覧していただいた方にわかりやすい表現を意識していますが
 ①分かりにくい点
 ②間違っている点
ありましたら、ご指摘ください🙏

それでは早速

STORKを使用したWebサイトに発生したエラーを解決する

【症状】

Webサイトの上部にエラーメッセージが表示される

メッセージ本文
   "Notice:Undefined variable:icon in /~ファイルパス省略~/wp-content/themes/jstork/library/shortcode.php on line 226"

【状況】

・テーマをアップデートしたら発生した
・吹き出しを使用しているページに表示されるっぽい(←サイト運営者推察)

【やったこと】

  1. エラーメッセージを読んでみる
    (ファイルパス省略)/library/shortcode.php の226行目にある"$icon"ってなんですの?の意味

  2. (ファイルパス省略)/library/shortcode.php 226行目を確認する

    • 方法1:サーバーからローカル環境に本番環境を構築して確認する
      • FTPソフトにて"jstork"をローカルのwordpress環境>wp-content>themeの中にダウンロード
      • > JSTORK > library > shortcode.php を選択し226行目の記述内容を確認する...①
    • 方法2:管理画面から確認してみる方法
      • WordPress管理画面 > 外観 > テーマエディターに進んで”stork(親テーマ本体)”を選択 > ①を実行
  3. 記述の内容を確認(以下コードのコピペ)

        // コンテンツボックス
    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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0