WP_Widget의 호출된 컨스트럭터 메서드는 버전 4.3.0 이후 사용되지 않습니다.
방금 WordPress 4.3으로 업데이트 했는데 뭔가 고장난 것 같아요.
페이지에 다음과 같은 에러가 표시됩니다.
주의: WP_Widget의 호출된 컨스트럭터 메서드는 버전 4.3.0 이후 사용되지 않습니다! 사용
__construct()
대신.3457회선의 /mnt/stor13-wc1-ord1/754452/www.eden-festival.com/web/content/securewp/wp-includes/functions.php에 있습니다.
고쳐야 할 게 있나요?
php 7은 php 4 오브젝트 구성을 지원하지 않기 때문에 다음과 같이 대체되었습니다.__construct()
Wordpress 개발자는 플러그인 개발자가 플러그인 작동 방식을 변경하도록 알림 메시지를 만들었습니다.php 4는 오랫동안 사용되지 않았기 때문에 이 스타일의 오브젝트 구성을 사용할 이유가 없습니다.
어떻게 고칠까?
옵션 1 - 새로운 php 버전으로 업그레이드하지 않음
덧붙이기만 하면 된다add_filter('deprecated_constructor_trigger_error', '__return_false');
기능을 향상시킵니다.php 파일은 이러한 알림을 무시합니다.
옵션 2 - php 7로 업그레이드 할 수 있습니다.소거하는 것보다 문제에 대처하는 것을 선호합니다.
서드파티 플러그인의 경우 사용자가 직접 변경을 가하여 플러그인 개발자가 업데이트를 출시하면 변경사항이 덮어쓰게 됩니다.플러그인 개발자에게 문의하여 이 문제를 해결하는 것이 가장 좋은 방법입니다.
문제가 있는 플러그인을 찾아 변경합니다.
parent::WP_Widget
로.
parent::__construct
나도 같은 에러가 발생하는데 이렇게 수정했어.
class Dokan_Category_Widget extends WP_Widget {
/**
* Constructor
*
* @return void
**/
public function __construct() {
$widget_ops = array( 'classname' => 'dokan-category-menu', 'description' => __( 'Dokan product category menu', 'dokan' ) );
$this->WP_Widget( 'dokan-category-menu', 'Dokan: Product Category', $widget_ops );
}
}
이러한 방식으로 컨스트럭터를 호출하는 방법은 php 7에서 권장되지 않기 때문에 호출 방식을 다음과 같이 대체했습니다.$this->WP_Widget()
와 함께parent::__construct()
class Dokan_Category_Widget extends WP_Widget {
/**
* Constructor
*
* @return void
**/
public function __construct() {
$widget_ops = array( 'classname' => 'dokan-category-menu', 'description' => __( 'Dokan product category menu', 'dokan' ) );
//$this->WP_Widget( 'dokan-category-menu', 'Dokan: Product Category', $widget_ops );
parent::__construct('dokan-category-menu', 'Dokan: Product Category', $widget_ops );
}
}
워드프레스 업데이트 후 업데이트되지 않은 플러그인과 다음과 같은 코드를 사용하고 있는 것 같습니다.class ***_Widget extends WP_Widget {
.플러그인을 갱신하거나 갱신될 때까지 비활성화해야 합니다.
함수를 선언하고 부모 컨스트럭터를 호출하면 이 문제가 해결되었습니다.
class myClass extends WP_Widget {
function __construct(){
parent::__construct(...) // calls constructor from WP_Widget class
}
}
이것은 경고의 일종입니다.오류를 숨길 수 있습니다.wp-config.php
사이트 루트 디렉토리의 파일
정의하다WP_DEBUG', false);
나는 이 문제를 경험했고 /wp-includes/functions의 'true' 문장을 'false'로 변경함으로써 알게 되었습니다.php 에러를 무효로 합니다.
( WP_DEBUG & & apply_filters ( 'decrecommitted_constructor_trigger_error' , true )의 경우,
언급URL : https://stackoverflow.com/questions/32860218/the-called-constructor-method-for-wp-widget-is-deprecated-since-version-4-3-0
'source' 카테고리의 다른 글
Grid Builder Visual Composer에서 변수의 게시 ID 가져오기 (0) | 2023.02.17 |
---|---|
AngularJS 지시 전달 문자열 (0) | 2023.02.17 |
다이렉티브 테스트에서 $140 대 $140 (0) | 2023.02.17 |
Facebook의 react.js 라이브러리 JSX 구문을 jslint로 잘 재생하려면? (0) | 2023.02.17 |
TypeScript skipLibCheck가 node_modules libs를 아직 검사하고 있습니다. (0) | 2023.02.17 |