programing

치명적 오류: 'WP_Customize_Control' 클래스를 찾을 수 없음 - WordPress

powerit 2023. 10. 5. 23:35
반응형

치명적 오류: 'WP_Customize_Control' 클래스를 찾을 수 없음 - WordPress

나만의 워드퍼스 테마를 만들고 있는데 테마 옵션을 위한 워드프레스 커스터마이저를 시작할 때 약간의 문제가 생겼습니다.

기본적으로 텍스트 영역을 만들고 읽은 내용은 확장 클래스를 만든 다음 워드프레스의 add_control 기능으로 호출해야 합니다.

사용해 본 결과 커스터마이저 모드에서 모두 잘 작동하지만 사이트의 다른 부분에 들어가면 다음과 같은 오류가 나타납니다.

치명적 오류: 'WP_Customize_Control' 클래스를 찾을 수 없습니다.

커스터마이저 내에서 100% 작동한다고 말하지만 관리자를 포함한 다른 페이지에서는 이 메시지를 받습니다.

클래스는 다음과 같습니다.

class ublxlportfolio_textarea extends WP_Customize_Control {
    public $type = 'textarea';

    public function render_content() {
        ?>
        <label>
        <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
        <textarea rows="5" style="width:100%;" <?php $this->link(); ?>><?php echo esc_textarea( $this->value() ); ?></textarea>
        </label>
        <?php
    }
}

조건부 태그로 포장해야 하나요?만약 그렇다면 그게 무엇일까요?

제가 잘못하고 있는 건가요?

@Robert의 정답을 명확히 하기 위해:

클래스 WP_Customize_Control은 테마 커스터마이저를 실제 사용하는 경우에만 로드됩니다.따라서 'customize_register' 작업에 함수 바인딩 내에서 클래스를 정의해야 합니다.

예:

add_action( 'customize_register', 'my_customize_register' );

function my_customize_register($wp_customize) {

  //class definition must be within my_customie_register function
  class ublxlportfolio_textarea extends WP_Customize_Control { ... }

  //other stuff
}

클래스 정의 전에 다음 줄이 필요합니다.

include_once ABSPATH . 'wp-includes/class-wp-customize-control.php';

같은 문제가 있어서 구글에서 여기로 착륙했습니다. 누군가에게 도움이 되길 바랍니다!

수업이 레지스터 기능 안에 들어와야 한다는 것을 알았습니다!

알림:WP_Customize_Control 클래스를 확장하는 중에 확인하는 것을 잊어버린 경우.이 알림은 테마 커스터마이저가 사용되지 않는 페이지에 있는 경우 이 문제를 디버깅하는 데 도움이 될 수 있습니다. 클래스 WP_Customize_Control은 테마 커스터마이저가 실제로 사용되는 경우에만 로드되기 때문입니다.

if (class_exists('WP_Customize_Control')) {
    class yourCustomControlClass extends WP_Customize_Control {
       // control actions
    }
}

건배!

언급URL : https://stackoverflow.com/questions/16532397/fatal-error-class-wp-customize-control-not-found-wordpress

반응형