Tạo các khối có điều kiện cho WordPress Gutenberg


7

Tôi đã xem xét các hướng dẫn về việc tạo các khối cho Gutenberg nhưng tôi không rõ cách xử lý một trường hợp sử dụng cụ thể - các khối có điều kiện.

Tôi đang xem xét việc tạo một loại bài đăng tùy chỉnh mà tôi sẽ đăng ký loại khối riêng của mình. Các khối này sẽ chỉ được hiển thị nếu điều kiện nhất định là đúng. Các điều kiện này sẽ là cờ boolean hoặc so sánh số nguyên (các giá trị đến từ các biến người dùng tùy chỉnh khô héo (meta) hoặc giá trị phiên).

Nếu tất cả các điều kiện là đúng, khối sẽ được hiển thị nhưng nếu một hoặc nhiều là sai thì (rõ ràng) không có gì được hiển thị.

Tôi hoàn toàn không thể quay đầu lại nơi tôi sẽ đặt logic cho việc này. Phải thừa nhận rằng sự hiểu biết của tôi về hệ thống Gutenberg mới này hơi run rẩy, có lẽ đó là lý do tại sao tôi cần một số trợ giúp.

Ví dụ:

<p logic="IF(is_logged_in,SHOW,HIDE)">My wonderful secret bit just for members.</p>

Bạn có nghĩa là một khối đã có trong nội dung bài đăng, hoặc thay vào đó trong danh sách ứng dụng, hoặc một khối là một phần của mẫu trang? Nếu bạn có thể đưa ra trường hợp chính xác, có thể dễ dàng hơn để tìm ra một giải pháp.
Alvaro

Chỉ là một khối là một phần của nội dung bài viết. Ví dụ IF (SomeCondition!=TRUE): Don't show this paragraph.
Matthew Brown hay còn gọi là Chúa Matt

2
Có lẽ phương pháp này có thể giúp đỡ?
bạch dương

1
Tôi nghĩ rằng sẽ làm tốt.
Matthew Brown hay còn gọi là Lord Matt

Bạn cũng có thể lồng các khối (làm cho các khối con chỉ được tải trong phần cha mẹ, tạo điều kiện), xem xét các cột và khối cột trong lõi để biết thêm thông tin. Các ALLOWED_BLOCKS liên tục có thể được sử dụng để kiểm soát mà khối được phép được sử dụng bên trong một khối
admcfajn

Câu trả lời:


2

Trong phương pháp chỉnh sửa cho khối tùy chỉnh của bạn, khi kết xuất các thành phần, bạn có thể sử dụng mẫu "có điều kiện + &&":

    <PanelBody title={ __( 'My Panel' ) } >

        { myCustomBool &&
            <MyComponent
                value={theValue}
                onChange={ value => {
                    myChangeCallback(value);
                } }
            />
        }
        { 'marmots' !== myCustomThing &&
            <MyOtherComponent
                value={theValue}
                onChange={ value => {
                    myOtherCallback(value);
                } }
            />
        }

    </PanelBody>

Trong ví dụ trên, các điều kiện ngay trước "&&" sẽ xác định xem thành phần tiếp theo có được hiển thị hay không.

Điều này đôi khi được gọi là "điều kiện ngắn mạch".


0

Nếu bạn muốn cấp cho người kiểm soát quyền kiểm soát những khối nào được hiển thị cho người dùng đã đăng nhập hay không, bạn có thể sử dụng plugin này: https://wordpress.org/plugins/block-options/

Sau đó, bạn không cần mã hóa nó vào khối của mình vì mọi khối sẽ có tùy chọn chỉ dành cho thành viên của bạn hoặc không.


Thật tuyệt, đối với những người mà đây là tất cả những gì họ muốn. Tôi đặc biệt tìm cách để tạo ra logic có điều kiện.
Matthew Brown hay còn gọi là Lord Matt
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.