스크립트 / 스타일 및 종속성의 URL 검색
스크립트 XY와 Z가 주어지면 PHP에서 XYZ 및 종속성 목록을 어떻게 얻을 수 있습니까?
종속성이있는 여러 스크립트를로드해야합니다.
일반적으로 난을 통해이 작업을 수행 할 것입니다 wp_enqueue_script
하지만 난 webcomponent의 그림자 DOM에서 이러한 스크립트를로드해야이 상황에서, 그리고에 의존 할 수 wp_head
와 wp_footer
내가 JS에서 DOM 요소 나 자신을 구성해야합니다. 이는 스타일 지정을 위해 구성 요소의 내용이 페이지의 나머지 부분과 분리되도록하기위한 것입니다.
답변
wp_enqueue_script()
그리고 wp_enqueue_style()
모두 사용 WP_Dependencies::add()의 새 인스턴스를 초기화 _WP_Dependency합니다 ( wp_scripts()및 wp_styles()), 그래서 모든 스크립트의 의존성은에 저장되어있는 deps
클래스 인스턴스의 속성입니다.
그러나 해당 속성 만 저장 핸들 예를 들어, 스크립트의 종속성의 이름 jquery-migrate
과 jquery-core
(핸들 이름 : 기본 / 핵심 jQuery를 스크립트를 jquery
) 너무 종속 파일 (스크립트 / 스타일 시트)의 실제 URL을 얻기 위해, 우리는 사용해야합니다 WP_Dependencies::all_deps()그런 다음 루프를 통해 WP_Dependencies::$to_do
종속성 src
값 을 가져옵니다 .
// Enqueue a script:
wp_enqueue_script( 'my-script', '/path/to/file.js', [ 'jquery' ] );
// Get all its dependencies:
wp_scripts()->all_deps( 'my-script' );
foreach ( wp_scripts()->to_do as $handle ) {
$dep = wp_scripts()->registered[ $handle ];
var_dump( $dep->handle, $dep->src );
// or do something with $dep->src ... } // Enqueue a style: wp_enqueue_style( 'my-style', '/path/to/file.css', [ 'foo-dep' ] ); // Get all its dependencies: wp_styles()->all_deps( 'my-style' ); foreach ( wp_styles()->to_do as $handle ) {
$dep = wp_styles()->registered[ $handle ];
var_dump( $dep->handle, $dep->src );
// or do something with $dep->src ...
}
참고가 $dep->src
수 있습니다 false
경우 의존성이 기본 예, 종속성을 포함하고 jquery
있다 핸들 jquery-migrate
종속성으로합니다. (하지만 걱정하지 마십시오. 종속성은 to_do
배열에 있습니다.) 둘째, to_do
배열에는 실제 파일도 포함됩니다 (예 : file.js
위의 예).