Chặn trong wordpress

Gutenberg là bộ soạn thảo mới của WordPress từ phiên bản 5. 0, quản lý nội dung bài viết bằng các khối. Bài viết này sẽ hướng dẫn các bạn tạo 1 Block cho riêng mình ngoài các Block được hỗ trợ sẵn của Gutenberg WordPress Editor

1. Đăng kí 1 block vào file functions. php

 'gutenberg-examples-01',
    ) );

}
add_action( 'init', 'gutenberg_vinasupport_sample_01_register_block' );

2. Tạo tập lệnh xử lý nội dung của Block

Tạo 1 khối có tên là “Ví dụ. H1“. Nội dung xử lý là chèn nội dung “Xin chào thế giới, chúng tôi là nhóm hỗ trợ vina” trong thẻ H1 vào bộ soạn thảo của WordPress

Tạo tệp js có đường dẫn /src/assets/gutenberg-examples-01. js trong chủ đề của WordPress. Bạn có thể đặt đường dẫn tệp này ở bất kỳ đâu

Nội dung file /src/assets/gutenberg-examples-01. js as after

( function( blocks, element ) {
    var el = element.createElement;

    var blockStyle = {
        backgroundColor: '#900',
        color: '#fff',
        padding: '20px',
    };

    blocks.registerBlockType( 'gutenberg-examples/example-01', {
        title: 'Example: H1',
        icon: 'universal-access-alt',
        category: 'layout',
        edit: function() {
            return el(
                'h1',
                { style: blockStyle },
                'Hello World, we are vinasupport team.'
            );
        },
        save: function() {
            return el(
                'h1',
                { style: blockStyle },
                'Hello World, we are vinasupport team.'
            );
        },
    } );
}(
    window.wp.blocks,
    window.wp.element
));

Kết quả.  

You made to public Block

Chặn trong wordpress

Sau khi nhấp vào Chặn “Ví dụ. H1”

Chặn trong wordpress

3. Tạo tập lệnh xử lý nội dung động cho Khối

Giờ chúng ta tạo 1 tập lệnh xử lý phức tạp hơn cho Block. Tạo khối với 1 bộ thảo luận cho dự án

Wordpress version 5. 0, mặc định Gutenberg sẽ là trình soạn thảo mới cho nền tảng WordPress. Cái tên Gutenberg được đặt tên theo Johannes Gutenberg. Khác với một trình soạn thảo văn bản, hình ảnh truyền thống, Gutenberg sử dụng các khối nội dung giống như nhiều trình tạo trang hiện đại

Gutenberg không tạo ra các mã ngắn và HTML mà tất cả đều được đơn giản hóa hơn thành một số công cụ có sẵn, phù hợp cho người mới bắt đầu sử dụng WordPress

Ưu điểm của Gutenberg

  • Tinh giản quá trình soạn thảo
  • Các nội dung theo khối
  • Build Layout phức tạp với ít thao tác
  • Các công cụ theo ngữ cảnh, chỉ hiển thị khi bạn cần sử dụng đến chúng
  • Nhúng nhanh nội dung từ các trang web khác

Nhược điểm của Gutenberg

  • Đang ở giai đoạn phát triển
  • Error at many error

Hướng dẫn tắt (vô hiệu hóa) Gutenberg?

Để tắt, bạn có thể sử dụng plugin Classic Editor https. //wordpress. org/plugins/classic-editor/

Hoặc bạn cũng có thể chèn thêm đoạn mã sau vào hàm tệp. php của chủ đề đang được sử dụng

add_filter('use_block_editor_for_post', '__return_false', 10);

Chúc bạn thành công

Để bắt đầu, chúng ta cần cài đặt NPM và Node. js. NPM là một gói quản lý gói cho Node. js. Vì vậy, sau khi cài đặt Node. js, bạn cũng sẽ có quyền truy cập để sử dụng NPM. Bạn cũng có thể thích thú với Yarn

2. Các công cụ có sẵn

We are could create a Gutenberg block from the start. Có nghĩa là chúng ta sẽ tự cài đặt, tùy chỉnh cấu hình webpack, Babel, v. v. nhưng để làm cho việc phát triển đơn giản nhất có thể, mình sẽ sử dụng các công cụ dưới đây để tạo khối Gutenberg

Chúng ta có 3 công cụ cung cấp môi trường cho việc phát triển Block Gutenberg dễ dàng hơn

  • tạo-guten-block – Gói NPM không chính thức nhưng khá tuyệt vời được tạo bởi Ahmad Awais
  • @wordpress/block – Gói chính thức của WordPress trên NPM để tạo khối Gutenberg
  • khối giàn giáo wp – tạo khối Gutenberg bằng WP CLI

Tất cả những công cụ này đều rất tốt để tạo ra một khối mẫu Gutenberg. Tuy nhiên, kính chào các bạn nên sử dụng create-guten-block hoặc @wordpress/block để phát triển

Mình thường dùng tạo-guten-block nên mình sẽ chỉ giới thiệu về tools này, còn 2 cái kia các bạn tự tìm hiểu nhé

3. Tạo Gutenberg Block với tạo-guten-block

tạo-guten-block là một công cụ tuyệt vời để phát triển Gutenberg Block. create-guten-block được phát triển bởi ahmadawais

Với tạo-guten-block, bạn không cần phải cấu hình gì nữa, vì công cụ này đã thiết lập môi trường webpack, babel,… từ a-z cho bạn rồi.

To started

  • Mở Terminal hoặc CMD lên
  • Đi đến thư mục bạn muốn tạo plugin, mình thường để trong thư mục plugin của wp luôn \wp-content\plugins\

Tạo Gutenberg Block với create-guten-blockTạo Gutenberg Block với tạo-guten-block

Gõ lệnh npx create-guten-block {your-gutenberg-block-plugin}

Lưu ý. Lệnh tạo một plugin WordPress với tên plugin mà bạn đã cung cấp

Ví dụ. Mình tạo plugin tên là my-block

npx create-guten-block my-block

sau đó vào thư mục plugin my-block để bắt đầu phát triển

cd my-block
npm start

to build production thì you used

________số 8

Cấu trúc thư mục sau khi tạo Gutenberg BlockConstructor directory after khi tạo Gutenberg Block

Các tệp và thư mục bạn cần quan tâm nằm trong thư mục src nha, đây là thư mục chính để phát triển các khối của bạn


.
├── block
│   ├── block.js
│   ├── editor.scss
│   └── style.scss
├── blocks.js
├── common.scss
└── init.php

Như các bạn có thể thấy, trong thư mục src này có 3 tệp và 1 thư mục

  • trong đó. php. This is file for you Enqueue Gutenberg Block assets for both frontend + backend
  • phổ thông. scss. Đây là tệp để tạo các biến, mixin, kiểu chung cho các khối
    • Nhưng có một vấn đề khi bạn viết style trong tệp này, đó là css trong tệp này sẽ bị lặp lại trên mỗi khối bạn tạo, dẫn đến việc dư css không cần thiết. Hiện tại thì tác giả vẫn chưa có phản hồi, bạn có thể xem chi tiết vấn đề tại đây https. //github. com/ahmadawais/create-guten-block/issues/295
  • khối. js. Là tệp chính js, tất cả các tệp JavaScript liên quan đến khối phải được nhập vào đây. Bạn có thể tạo một khối thư mục mới và bao gồm cho khối đó ở đây
  • khối thư mục. Đây là 1 khối thư mục
    • khối. js. là tệp js chính của khối chính này, logic, UI/UX sẽ được viết trong này bằng ReactJS
    • biên tập viên. scss. đây là css ở phần phụ trợ của trình chỉnh sửa
    • Phong cách. scss. đây là css ở phần giao diện người dùng

Một khối khi được đăng ký sẽ có cấu trúc như thế này

registerBlockType( 'cgb/my-block', {
	// Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block.
	title: __( 'my-block - CGB Block' ), // Block title.
	description: __('This is description of block.'),
	icon: 'shield', // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/.
	category: 'common', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed.
	keywords: [
		__( 'my-block — CGB Block' ),
		__( 'CGB Example' ),
		__( 'create-guten-block' ),
	],

	attributes: {
		values: {
			type: 'array',
			default: []
		},
		anchor: {
			type: 'string'
		}
	},
	supports: {
		'anchor': true,
	},

	edit: ( props ) => {
		return (
			
...
); }, save: ( props ) => { return (
...
); }, } );

Để plugin có thể chạy được, bạn cần phải tạo các tệp js, scss bằng cách sau

  • Mở cmd lên và đi vào thư mục plugin của bạn. \wp-content\plugins\{your-gutenberg-block-plugin}
  • Run command npm run build or
    ( function( blocks, element ) {
        var el = element.createElement;
    
        var blockStyle = {
            backgroundColor: '#900',
            color: '#fff',
            padding: '20px',
        };
    
        blocks.registerBlockType( 'gutenberg-examples/example-01', {
            title: 'Example: H1',
            icon: 'universal-access-alt',
            category: 'layout',
            edit: function() {
                return el(
                    'h1',
                    { style: blockStyle },
                    'Hello World, we are vinasupport team.'
                );
            },
            save: function() {
                return el(
                    'h1',
                    { style: blockStyle },
                    'Hello World, we are vinasupport team.'
                );
            },
        } );
    }(
        window.wp.blocks,
        window.wp.element
    ));
    0

In dev mode, you run

( function( blocks, element ) {
    var el = element.createElement;

    var blockStyle = {
        backgroundColor: '#900',
        color: '#fff',
        padding: '20px',
    };

    blocks.registerBlockType( 'gutenberg-examples/example-01', {
        title: 'Example: H1',
        icon: 'universal-access-alt',
        category: 'layout',
        edit: function() {
            return el(
                'h1',
                { style: blockStyle },
                'Hello World, we are vinasupport team.'
            );
        },
        save: function() {
            return el(
                'h1',
                { style: blockStyle },
                'Hello World, we are vinasupport team.'
            );
        },
    } );
}(
    window.wp.blocks,
    window.wp.element
));
1 or
( function( blocks, element ) {
    var el = element.createElement;

    var blockStyle = {
        backgroundColor: '#900',
        color: '#fff',
        padding: '20px',
    };

    blocks.registerBlockType( 'gutenberg-examples/example-01', {
        title: 'Example: H1',
        icon: 'universal-access-alt',
        category: 'layout',
        edit: function() {
            return el(
                'h1',
                { style: blockStyle },
                'Hello World, we are vinasupport team.'
            );
        },
        save: function() {
            return el(
                'h1',
                { style: blockStyle },
                'Hello World, we are vinasupport team.'
            );
        },
    } );
}(
    window.wp.blocks,
    window.wp.element
));
2

Sau đó kích hoạt plugin lên và kiểm tra khối vừa tạo có hoạt động không nhé

Ở bài viết tiếp theo mình sẽ giới thiệu cho các bạn chi tiết hơn về biến, thuộc tính, cài đặt khối, thành phần được khai báo