[워드프레스] Responsive Lightbox & Gallery 끼우개의 define 문이 일으키는 PHP 경고문 막기

  'Responsive Lightbox & Gallery'는 그림을 딸깍했을 때에 전시 효과를 내도록 그림틀(Lightbox)를 붙이는 워드프레스의 끼우개(플러그인)이다.

  이 끼우개가 너무 많은 PHP 디버그 경고문을 일으키고 있다.

[14-May-2022 09:10:34 UTC] PHP Warning:  Constant HDOM_TYPE_ELEMENT already defined in /.../wp-content/plugins/responsive-lightbox/library/simplehtmldom/simple_html_dom.php on line 24
[14-May-2022 09:10:34 UTC] PHP Warning:  Constant HDOM_TYPE_COMMENT already defined in /.../wp-content/plugins/responsive-lightbox/library/simplehtmldom/simple_html_dom.php on line 25
...
[14-May-2022 09:10:34 UTC] PHP Warning:  Constant HDOM_INFO_OUTER already defined in /.../wp-content/plugins/responsive-lightbox/library/simplehtmldom/simple_html_dom.php on line 39
[14-May-2022 09:10:34 UTC] PHP Warning:  Constant HDOM_INFO_ENDSPACE already defined in /.../wp-content/plugins/responsive-lightbox/library/simplehtmldom/simple_html_dom.php on line 40

  라이브러리로 들어간 SimpleHTMLDom의 simplehtmldom.php에서 먼저 정의된 define 문들이 simple_html_dom.php에서 또 정의되면서 생기는 문제이다.

  다음은 simple_html_dom.php 파일의 24~40째 줄에 있는 본래 내용이다.

define('HDOM_TYPE_ELEMENT', 1);
define('HDOM_TYPE_COMMENT', 2);
define('HDOM_TYPE_TEXT', 3);
define('HDOM_TYPE_ENDTAG', 4);
define('HDOM_TYPE_ROOT', 5);
define('HDOM_TYPE_UNKNOWN', 6);
define('HDOM_QUOTE_DOUBLE', 0);
define('HDOM_QUOTE_SINGLE', 1);
define('HDOM_QUOTE_NO', 3);
define('HDOM_INFO_BEGIN', 0);
define('HDOM_INFO_END', 1);
define('HDOM_INFO_QUOTE', 2);
define('HDOM_INFO_SPACE', 3);
define('HDOM_INFO_TEXT', 4);
define('HDOM_INFO_INNER', 5);
define('HDOM_INFO_OUTER', 6);
define('HDOM_INFO_ENDSPACE', 7);

  PHP 경고문이 나오지 않게 하려면, define 문이 이미 선언되었는지를 defined 문으로 확인하도록 아래처럼 덧붙여 준다.

defined('HDOM_TYPE_ELEMENT') || define('HDOM_TYPE_ELEMENT', 1);
defined('HDOM_TYPE_COMMENT') || define('HDOM_TYPE_COMMENT', 2);
defined('HDOM_TYPE_TEXT') || define('HDOM_TYPE_TEXT', 3);
defined('HDOM_TYPE_ENDTAG') || define('HDOM_TYPE_ENDTAG', 4);
defined('HDOM_TYPE_ROOT') || define('HDOM_TYPE_ROOT', 5);
defined('HDOM_TYPE_UNKNOWN') || define('HDOM_TYPE_UNKNOWN', 6);
defined('HDOM_QUOTE_DOUBLE') || define('HDOM_QUOTE_DOUBLE', 0);
defined('HDOM_TYPE_ELEMENT') || define('HDOM_QUOTE_SINGLE', 1);
defined('HDOM_QUOTE_NO') || define('HDOM_QUOTE_NO', 3);
defined('HDOM_INFO_BEGIN') || define('HDOM_INFO_BEGIN', 0);
defined('HDOM_INFO_END') || define('HDOM_INFO_END', 1);
defined('HDOM_INFO_QUOTE') || define('HDOM_INFO_QUOTE', 2);
defined('HDOM_INFO_SPACE') || define('HDOM_INFO_SPACE', 3);
defined('HDOM_INFO_TEXT') || define('HDOM_INFO_TEXT', 4);
defined('HDOM_INFO_INNER') || define('HDOM_INFO_INNER', 5);
defined('HDOM_INFO_OUTER') || define('HDOM_INFO_OUTER', 6);
defined('HDOM_INFO_ENDSPACE') || define('HDOM_INFO_ENDSPACE', 7);
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요