Đặt mục tiêu liên kết hình ảnh mặc định trong khối hình ảnh Gutenberg


10

Tôi muốn đặt mục tiêu mặc định của khối hình ảnh trong Gutenberg thành "Tệp phương tiện":

Liên kết mục tiêu

Tôi đã tìm thấy giải pháp cho trình soạn thảo cổ điển và một giải pháp có vẻ hoạt động cho các phòng trưng bày của Gutenberg bằng cách chỉnh sửa mẫu của khối, nhưng tôi có ấn tượng rằng cách dự định để sửa đổi hành vi của trình soạn thảo là thông qua các móc nối JavaScript trong trình chỉnh sửa khối.

Có cách nào để đặt mục tiêu mặc định bằng cách sử dụng hook JavaScript trong trình chỉnh sửa khối không?

CẬP NHẬT: Tôi đã thực hiện một yêu cầu kéo trên kho Gutenberg GitHub để cố gắng thực hiện khả năng ghi đè mục tiêu liên kết mặc định bằng một plugin. Phiên bản mới nhất là đây . Khi viết, điều này vẫn chưa được hợp nhất.

Câu trả lời:


4

Sử dụng bộ lọc, blocks.registerBlockTypechúng tôi có thể thay đổi cài đặt đăng ký khối. Chúng tôi chỉ đơn giản là cần phải nhắm mục tiêu các core/imagekhối và sửa đổi các giá trị mặc định cho thuộc tính linkDestinationđó là không theo mặc định.

function modifyLinkDestinationDefault(settings, name) {
    if (name !== "core/image") {
        return settings;
    }

    settings.attributes.linkDestination.default = "media";

    return settings;
}

wp.hooks.addFilter(
    "blocks.registerBlockType",
    "my-plugin/modify-linkDestination-default",
    modifyLinkDestinationDefault
);

1
Làm việc như một cơ duyên, cảm ơn rất nhiều! Tôi đã bọc mã của bạn trong một ( function( wp ) { ... } )( window.wp );khối và xử lý tập lệnh bằng cách sử dụng enqueue_block_editor_assetshook PHP. Các kịch bản được liệt kê nên có sự wp-hooksphụ thuộc được chỉ định.
Sean

1
Và, để đặt mặc định cho các phòng trưng bày, bạn phải sửa đổi core/gallerykhối và đặt settings.attributes.linkTo.default. Sự không nhất quán của Gutenberg ...
Sean

1
@Sean Bạn có thể thấy ở đây mục đích của các chức năng gói theo cách đó là gì. Khi bạn sử dụng một phụ thuộc tập lệnh để xử lý tập lệnh của riêng bạn, trong trường hợp này wp-hooksnhư bạn đã chỉ ra, sau đó bạn có thể sử dụng một cách an toàn nội dung của phụ thuộc đó trong tập lệnh của mình.
Alvaro

2
Cập nhật: không may là giải pháp này không thực sự hoạt động. Mặc định mới được đặt, nhưng thuộc hreftính thì không - và điều này là bắt buộc để hình ảnh đã lưu thực sự hiển thị liên kết. Có vẻ như tôi thực sự phải thực hiện onSetLinkDestinationchức năng nào đó để thiết lập chức năng href, nhưng điều này không thể được thực hiện cho đến khi một hình ảnh thực sự được tải lên (tức là không thể thực hiện được trên registerBlockTypehook). Bất kỳ ý tưởng cho làm thế nào điều này có thể được sửa chữa?
Sean

1
Tôi đã gửi yêu cầu kéo để thực hiện điều này trong Gutenberg, sau đó được cải thiện bởi một người dùng khác ... nếu bạn cần tính năng này, vui lòng chọc các nhà phát triển trên các luồng GitHub đó để triển khai nó.
Sean
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.