바닐라 WP 코어로드 중 $wp-init()
테마로드 후 및 init
후크 전의 현재 사용자가 설정됩니다 . 이것은 기능에 대한 좋은 습관과 나란히 연결되어 init
있습니다.
그러나 그 current_user_can()
이전 과 같은 관련 함수를 호출하는 것도 일반적 입니다. 초기로드 프로세스 단계에서 작동하는 플러그인에는 정의가 필요합니다 (툴바 테마 스위처 플러그인이 예입니다).
문서는이 관행에 대해 주장하거나 주장하지 않습니다 (찾을 수 있음).
그러나 일부 플러그인은 사용자 관련 기능에 연결되어 init
항상 사후 상태를 기대합니다 .
예를 들어 bbPress는 다음과 같은 알림을 표시합니다.
// If the current user is being setup before the "init" action has fired,
// strange (and difficult to debug) role/capability issues will occur.
if ( ! did_action( 'after_setup_theme' ) ) {
_doing_it_wrong( __FUNCTION__, __( 'The current user is being initialized without using $wp->init().', 'bbpress' ), '2.3' );
}
빠른 시연을 위해 이것을 핵심 정의로 던지십시오 current_user_can()
.
function current_user_can( $capability ) {
if ( ! did_action('after_setup_theme') ) {
echo wp_debug_backtrace_summary();
}
이 상황에서 누가“옳은가”? 사용자 관련 기능의 허용 / 금지 사용에 대한 정식 결정이 init
있습니까?