wp_enqueue_script가 잘못 호출되었습니다


20

어떻게 모르겠지만 지금은이 오류가 발생합니다.

참고 : wp_enqueue_style이 잘못 호출되었습니다. wp_enqueue_scripts, admin_enqueue_scripts 또는 login_enqueue_scripts가 후크 될 때까지 스크립트 및 스타일을 등록하거나 큐에 넣지 마십시오. 자세한 내용은 WordPress에서 디버깅을 참조하십시오. (이 메시지는 버전 3.3에서 추가되었습니다.) 3049 행의 wp-includes / functions.php

참고 : wp_enqueue_script가 잘못 호출되었습니다. wp_enqueue_scripts, admin_enqueue_scripts 또는 login_enqueue_scripts가 후크 될 때까지 스크립트 및 스타일을 등록하거나 큐에 넣지 마십시오. 자세한 내용은 WordPress에서 디버깅을 참조하십시오. (이 메시지는 버전 3.3에서 추가되었습니다.) 3049 행의 wp-includes / functions.php

경고 : 헤더 정보를 수정할 수 없습니다-415 행의 wp-login.php에서 이미 보낸 헤더 (출력은 wp-includes / functions.php : 3049에서 시작되었습니다)

경고 : 헤더 정보를 수정할 수 없습니다-427 행의 wp-login.php에서 이미 보낸 (wp-includes / functions.php : 3049에서 출력 된 헤더) 헤더

이것은 내가 로그인하려고 할 때 얻는 것입니다. 다른 사이트에서는 첫 두 개의 오류 만 있습니다. 나는 그것을 고치려고 노력하지만 할 수 없다. 어떤 제안?


1
Notice의 꽤 자기 설명을 보인다. 무엇을 시도했고 작동하지 않았습니까?
s_ha_dum

@ s_ha_dum Google에서 찾은 많은 것들을 시도했습니다 ... 지금은 toscho의 솔루션이 나를 위해 일했으며 관리자 패널에 로그인 할 수는 있지만 글꼴이로드되기 때문에로드 스타일에 문제가 있음을 알 수 있습니다 그것과 같지 않았습니다. 이 오류가 계속 발생합니다.
raiden

답변:


15

모든 플러그인을 비활성화하고 기본 테마로 전환하십시오. 이제 사라져야합니다.

그런 다음 문제가 다시 발생할 때까지 각 애드온을 단계별로 활성화하십시오. 이제 소스를 알고 플러그인이라고합시다.

플러그인이 wp_enqueue_script너무 일찍 호출 됩니다. 해당 함수의 모든 항목을 찾은 다음 특정 조치에 바인드되었는지 확인하십시오.

  • wp_register_script() 행동을 요구해야한다 wp_loaded
  • wp_enqueue_script 행동 중 하나에
    • wp_enqueue_scripts,
    • admin_enqueue_scripts,
    • customize_controls_enqueue_scripts 또는
    • login_enqueue_scripts( 후자는 이 스레드 를 참조하십시오 ).

문제는 쿠키로 인해 이상한 오류가 발생하기 때문에 로그인 할 수 없다는 것입니다. 오류는 브라우저에서 쿠키를 차단했지만 쿠키를 차단하지 않았다고 말합니다. 오늘 내가 한 모든 일이 style.css에 몇 줄을 추가했기 때문에 너무 이상합니다. 그 오류가 발생한 후 몇 시간이 지났습니다.
처녀 처녀

@raiden 그런 다음 FTP별로 플러그인 디렉토리의 이름을 바꾸고 현재 활성화 된 테마에 대해 동일한 작업을 수행하십시오.
fuxia

이제 내 패널에 로그인 할 수 있습니다 ... 감사합니다! 그러나 이제 하나의 오류가 더 발생합니다. 경고 : 헤더 정보를 수정할 수 없습니다-896 번 라인의 wp-includes / pluggable.php에서 헤더 헤더 정보 (wp-includes / functions.php : 3049에서 시작된 출력)를 수정했습니다
raiden

4

Gregory Schultz의 솔루션을 기반으로 합니다.

모든 스크립트와 스타일을 함수로 감싸서 해당 함수를 대상 enqueue액션에 연결하십시오. 👇

function my_admin_scripts() {
  wp_enqueue_style( 'admin-css', get_stylesheet_directory_uri() . '/admin/css/admin.css' );
  wp_enqueue_script( 'admin-js', get_stylesheet_directory_uri() . '/admin/js/admin.js', true );
}
add_action( 'admin_enqueue_scripts', 'my_admin_scripts' );

wp_enqueue_scripts — 프론트 엔드

admin_enqueue_scripts — 관리자 페이지

login_enqueue_scripts - 로그인 페이지


2

이런 일이 발생하는 이유는 이러한 함수가 함수를 사용하지 않고 functions.php 파일에서 직접 호출되기 때문입니다. functions.php의 어떤 행이 이와 같은 함수 안에 있지 않은지 찾아서 추가하십시오.

날짜 선택기의 예 :

functions.php에서-대신 :

wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_style('jquery-ui-css', '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css');
wp_enqueue_style('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');

우리는 이것을 추가합니다

    // 함수를 정의합니다 :
    함수 MYTHEME_scripts () {
    wp_enqueue_script ( 'jquery-ui-datepicker');
    }

    // WP 로딩 목록에 함수를 추가합니다.
    add_action ( 'wp_enqueue_scripts', 'MYTHEME_scripts');

    함수 MYTHEME_styles () {
    wp_enqueue_style ( 'jquery-ui-css', '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css');
    wp_enqueue_style ( 'jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');
    }

    // WP 로딩 목록에 함수를 추가합니다.
    add_action ( 'wp_enqueue_style', 'MYTHEME_styles');

그것이 작동하기를 바랍니다


1

wp_enqueue_script()프론트 엔드 용 wp_enqueue_scripts, 로그인 화면 용 login_enqueue_scripts, 관리 대시 보드 용 admin_enqueue_scripts 인 3 개의 "엔드 포인트" 가 있음을 의미합니다. 이 링크를 확인하십시오 .

잘못 wp_enqueue_script()호출 되었기 때문에이 오류가 발생 합니다.


나는 거기에 무엇이 있는지 이해하지만이 "수정 방법 : wp_enqueue_scripts를 대신 사용하십시오."
처녀 처녀

그것은 wp_enqueue_scripts대신에 사용해야한다는 것을 의미 wp_print_styles하지만 귀하의 사건과 관련이 있는지 의심 스럽습니다. 문제 해결의 예일뿐입니다. 귀하의 경우 플러그인 또는 테마에 오용하는 일부 기능이 있으므로이 wp_enqueue_script()오류가 발생합니다 ... 내 추측.
JMau

나는 Notice: wp_register_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks.모든 스크립트와 스타일을 함수로 감싸고 있었고 통지가 사라졌습니다.
그레고리 슐츠

게다가, 나는 오류가 없다
Gregory Schultz

1

모든 플러그인을 하나씩 비활성화하거나 코드베이스를 수정하여 디버깅하는 대신 Query Monitor 플러그인을 사용 하여이 오류의 원인을 좁힐 수 있습니다 .

콘솔에이 오류가보고 된 경우 :

wp_register_style이 잘못 호출되었습니다. wp_enqueue_scripts, admin_enqueue_scripts 또는 login_enqueue_scripts가 후크 될 때까지 스크립트 및 스타일을 등록하거나 큐에 넣지 마십시오. 자세한 내용은 WordPress에서 디버깅을 참조하십시오. (이 메시지는 버전 3.3.0에서 추가되었습니다.)

마지막 열 ( Component)은 오류를 발생시키는 플러그인을 알려줍니다. 거기에서 해당 플러그인 (또는 테마) 내에서 검색하여 문제를 찾아 패치하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.