sourcecode

Block.json이 잘못된 경로를 반환함

copyscript 2023. 2. 28. 23:43
반응형

Block.json이 잘못된 경로를 반환함

@wordpress/create-block(https://developer.wordpress.org/block-editor/reference-guides/packages/packages-create-block/))을 사용하여 커스텀 블록 플러그인을 만들었습니다.

플러그인으로 기능하지만 테마로 이동하면 block.json 파일의 "editorScript"가 잘못된 경로를 반환합니다.

themeDirectory/blocks/mycustomblock/block.json

{
    "name": "create-block/mycustomblock",
    "title": "Mycustomblock",
    "description": "Example block written with ESNext standard and JSX support – build step required.",
    "category": "text",
    "icon": "smiley",
    "supports": {
        "html": false
    },
    "attributes":{
        "backgroundColor": {
            "type": "string",
            "default": "red"
        }
    },
    "editorScript": "file:./build/index.js"
}

editorScript에서 경로를 반환했습니다.

404 | http://localhost:8888/wordpress-test/wp-content/plugins/Users/jonrose/Dropbox/htdocs/wordpress-test/wp-content/themes/mytheme/blocks/mycustomblock/build/index.js?ver=4f45658ee3212a45c5d5367f6fbdfeba

register_block_type 함수에 스크립트를 등록하면 정상적으로 동작합니다.

wp_register_script( 'mycustomblock-js', get_template_directory_uri() . '/blocks/mycustomblock/build/index.js', array( 'wp-blocks' ));

    register_block_type( __DIR__, array(
        'editor_script' => 'mycustomblock-js'
    ) );

블록 유형 등록block.json사용하다register_block_script_handle모든 관련 블록 스크립트를 등록합니다.스크립트에서 패턴을 사용하는 경우 이 함수는 URL을 생성하기 위해 사용합니다.

이미 존재하는 핸들을 전달합니다(예:mycustomblock-js)가 동작하는 이유는 다음과 같습니다.register_block_script_handle그렇지 않은 것을 보다file:<path>그 핸들(및 대응하는 URL)을 그대로 사용합니다.

edavis가 옳고 그것이plugins_url()method는 enque에 넣을 때 호출됩니다.editorScript,editorStyle,그리고.style패스

다른 인수를 다음에 전달할 수 있지만register_block_type당신이 필요한 것을 선언하기 위해 나는 단지 단순함을 유지하는 아이디어를 좋아한다.block.json이 작업을 테마 내에서 수행하기 위해 필터 후크를 사용했습니다.plugins_urlURL 에 테마 패스가 포함되어 있는 것을 검출했을 경우, URL 를 수정합니다.

add_filter( 'plugins_url', function ( $url, $path, $plugin ) {
    if ( strpos( $url, get_template_directory() ) !== false ) {
        $url = str_replace( 'wp-content/plugins' . get_home_path(), '', $url );
    }

    return $url;
}, 10, 3 );

언급URL : https://stackoverflow.com/questions/69081471/block-json-returnes-wrong-paths

반응형