Làm cách nào để tắt trình chỉnh sửa Gutenberg trong WordPress mà không cần plugin?

Gutenberg sẽ sớm được thêm vào lõi WordPress. Đây là tin tuyệt vời cho một số người, không tuyệt vời cho những người khác. Với 99. 9999% (ước tính) của tất cả các trang web WordPress hiện được thiết lập để hoạt động mà không có Gutenberg, những thay đổi lớn đang diễn ra mạnh mẽ sẽ ảnh hưởng đến hàng triệu trang web theo đúng nghĩa đen. Và có vẻ như toàn bộ trải nghiệm “Gutenberg” có vẻ phù phiếm, nhưng sự thật đơn giản là phần lớn chủ sở hữu trang web sẽ không chuẩn bị sẵn sàng khi cuối cùng nó xuất hiện. Nhiều doanh nghiệp nhỏ cũng sẽ không có thời gian hoặc ngân sách để kiểm tra và cập nhật các trang web của khách hàng để phù hợp với ol’ Gut’

Ghi chú. Để giúp tiết kiệm thời gian, tôi có thể gọi Gutenberg là G7G hoặc g7g trong suốt bài viết này (e. g. , trong đoạn mã). Chỉ nhanh hơn gõ nó ra mỗi lần. )

*Bạn* có sức mạnh

Nếu điều đó giống như trường hợp của bạn, về cơ bản bạn có hai lựa chọn

  1. Hãy sẵn sàng và dành thời gian và tiền bạc của bạn để kiểm tra và cập nhật tất cả các trang web khách hàng hiện có cho Gutenberg
  2. HOẶC, chỉ cần tắt Gutenberg cho đến khi bạn sẵn sàng sử dụng

Từ những người nhìn trộm WP mà tôi đã nghe được, chỉ một số ít sẵn sàng sẵn sàng hy sinh bất kỳ lượng thời gian và tiền bạc nào cần thiết để triển khai và hỗ trợ Gutenberg. Hầu hết những người mà tôi đã nghe đều bối rối và/hoặc đơn giản là không biết về những thay đổi lớn dành cho họ và các trang web do WordPress cung cấp. Hãy để một mình có các nguồn lực để triển khai hỗ trợ G7G trở về trước

Vì vậy, đối với những người ở trại thứ hai đó, nơi không khả thi để bỏ mọi thứ ngay lập tức và học lại cách phát triển với WordPress bằng JavaScript, bài đăng này giải thích nhiều cách để vô hiệu hóa Gutenberg, bao gồm vô hiệu hóa Gutenberg thông qua plugin, và sau đó là một loạt các cách

Mẹo. Nếu Gutenberg bị vô hiệu hóa trên trang web của bạn, bạn luôn có thể kích hoạt nó một cách có điều kiện cho mọi bài đăng, trang, mẫu, vai trò người dùng, loại bài đăng, v.v. Để tìm hiểu cách thực hiện, hãy xem hướng dẫn DigWP của chúng tôi về cách bật Gutenberg có chọn lọc

Vô hiệu hóa Gutenberg thông qua Plugin

Cách dễ nhất để vô hiệu hóa Gutenberg là cài đặt plugin miễn phí của tôi, Vô hiệu hóa Gutenberg. Nó là một plugin đơn giản tập trung vào một thứ. vô hiệu hóa Gutenberg và khôi phục màn hình WP Editor cổ điển mặc định. Chỉ cần bật plugin, chọn tùy chọn của bạn và hoàn tất. tùy chọn bao gồm

  • Vô hiệu hóa hoàn toàn Gutenberg (tất cả các loại bài đăng)
  • Chỉ tắt Gutenberg trên các loại bài đăng cụ thể
  • Vô hiệu hóa Gutenberg cho các vai trò người dùng cụ thể
  • Vô hiệu hóa Gutenberg cho bất kỳ mẫu chủ đề nào
  • Tùy chọn để ẩn lời cằn nhằn “Hãy thử chú thích Gutenberg
  • Tùy chọn ẩn mục menu Gutenberg

Vì vậy, nó linh hoạt nhưng đơn giản và siêu dễ sử dụng. Về cơ bản, nó hoạt động giống như plugin Trình chỉnh sửa cổ điển, nhưng có thể làm được NHIỀU hơn thế. Kiểm tra tài liệu và trang chủ để biết thêm chi tiết

Vô hiệu hóa Gutenberg qua Mã

May mắn thay, có rất nhiều cách để vô hiệu hóa Gutenberg theo lập trình. Hãy xem xét từng người trong số họ

Vô hiệu hóa hoàn toàn Gutenberg

Cập nhật. Cách mới để vô hiệu hóa Gutenberg

Đúng như dự đoán, Gutenberg đang thay đổi liên tục. Hiện tại, bạn có thể sử dụng một trong các hook bộ lọc sau để tắt hoàn toàn Gutenberg trên toàn bộ trang web của mình

// disable for posts
add_filter('use_block_editor_for_post', '__return_false', 10);

// disable for post types
add_filter('use_block_editor_for_post_type', '__return_false', 10);

Một lần nữa, một trong hai móc này sẽ đủ; . Ý tưởng là các hook khác nhau cho phép bạn xác định cả các bài đăng đơn lẻ và lượt xem lưu trữ. Các móc này hoạt động cho plugin Gutenberg phiên bản 4. 1 trở lên và WordPress 5. 0 (beta) trở lên. Đối với các phiên bản cũ hơn, hãy sử dụng mã bên dưới

Các phiên bản cũ hơn của WP/Gutenberg

Để vô hiệu hóa hoàn toàn Gutenberg trên các phiên bản cũ hơn, hãy thêm một trong các hook bộ lọc sau qua

// Disable Gutenberg

if (version_compare($GLOBALS['wp_version'], '5.0-beta', '>')) {
	
	// WP > 5 beta
	add_filter('use_block_editor_for_post_type', '__return_false', 10);
	
} else {
	
	// WP < 5 beta
	add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
	
}
2 hoặc plugin tùy chỉnh (hoặc thậm chí là plugin phải sử dụng. )

// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);

Một lần nữa, không cần thêm cả hai dòng này, cả hai dòng này sẽ hoạt động để vô hiệu hóa Gutenberg ở mọi nơi trên trang web của bạn (tôi. e. , cho tất cả các bài đăng và loại bài đăng). Các bộ lọc này là cách được đề xuất để tắt Gutenberg. Chúng hoạt động với phiên bản plugin Gutenberg dưới 4. 1 và các phiên bản WordPress dưới 5. 0 phiên bản thử nghiệm

kỹ thuật có điều kiện

Trong trường hợp nó hữu ích cho bất kỳ ai, đây là một ví dụ về cách vô hiệu hóa Gutenberg/Block Editor một cách có điều kiện tùy thuộc vào phiên bản WordPress đang chạy

// Disable Gutenberg

if (version_compare($GLOBALS['wp_version'], '5.0-beta', '>')) {
	
	// WP > 5 beta
	add_filter('use_block_editor_for_post_type', '__return_false', 10);
	
} else {
	
	// WP < 5 beta
	add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
	
}

Ở đây chúng tôi sử dụng

// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
0 để xem WordPress có chạy ở mức 5 không. 0 (thử nghiệm) hoặc tốt hơn. Nếu vậy, thì chúng tôi vô hiệu hóa Gutenberg bằng bộ lọc mới. Mặt khác, WordPress đang chạy phiên bản cũ hơn nên chúng tôi vô hiệu hóa bằng bộ lọc mới nhất

Vô hiệu hóa Gutenberg cho các loại bài đăng tùy chỉnh

Cập nhật. Cách mới để vô hiệu hóa Gutenberg

Đối với các phiên bản mới hơn của Gutenberg (4. 1+) và WordPress 5. 0 beta, đây là cách tắt Gutenberg cho các loại bài đăng cụ thể

function digwp_disable_gutenberg($is_enabled, $post_type) {
	
	if ($post_type === 'book') return false; // change book to your post type
	
	return $is_enabled;
	
}
add_filter('use_block_editor_for_post_type', 'digwp_disable_gutenberg', 10, 2);

Điều này giống như phương pháp cũ hơn, điều duy nhất đã thay đổi là cái móc. So sánh với mã được sử dụng cho các phiên bản cũ hơn

Các phiên bản cũ hơn của WP/Gutenberg

Dưới đây là cách tắt Gutenberg trên các loại bài đăng cụ thể cho các phiên bản Gutenberg cũ hơn (dưới 4. 1) và các phiên bản WordPress dưới 5. 0 phiên bản thử nghiệm

Trình chỉnh sửa Gutenberg chỉ hoạt động trên các bài đăng WP khi nó được bật. Theo mặc định, điều này bao gồm các bài đăng và trang WP. Các loại bài đăng khác có thể bị vô hiệu hóa bằng cùng một bộ lọc,

// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
1. Ví dụ

function digwp_disable_gutenberg($is_enabled, $post_type) {
	
	if ($post_type === 'book') return false; // change book to your post type
	
	return $is_enabled;
	
}
add_filter('gutenberg_can_edit_post_type', 'digwp_disable_gutenberg', 10, 2);

Ở đây chúng tôi chỉ vô hiệu hóa Gutenberg cho loại bài đăng

// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
2. Vì vậy, nó sẽ chỉ ảnh hưởng đến sách và không có loại bài đăng nào khác. Để tắt cho một loại bài đăng khác, hãy thay thế
// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
2 bằng tên loại bài đăng của bạn

Vô hiệu hóa khi đăng ký các loại bài đăng

Cũng có thể tắt G7G khi đăng ký Loại bài đăng tùy chỉnh của bạn. Phương pháp này chỉ có ý nghĩa đối với các CPT không sử dụng trình chỉnh sửa bài đăng, vì về cơ bản, nó sẽ vô hiệu hóa hoàn toàn bảng chỉnh sửa. Để làm như vậy, chỉ cần bỏ qua

// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
4 khỏi tham số
// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
5 khi đăng ký loại bài đăng của bạn. Đây là một ví dụ

// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
1

Bởi vì chúng tôi đã loại trừ tham số

// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
4, loại bài đăng sách sẽ không bao gồm trình chỉnh sửa bài đăng và do đó sẽ không bao gồm bất kỳ nội dung nào của Gutenberg

Tắt khi đăng ký loại bài đăng (thông qua API REST)

Một cách khác để tắt Gutenberg khi đăng ký các loại bài đăng tùy chỉnh là tắt REST cho loại bài đăng của bạn. Điều này có thể được thực hiện bằng cách đặt tham số

// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
7 thành
// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
8, ví dụ:

// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
5

Vì vậy, ngay cả khi loại bài đăng của bạn hỗ trợ trình chỉnh sửa bài đăng, bạn vẫn có thể tắt Gutenberg bằng cách tắt API REST, vì Gutenberg yêu cầu API REST để hoạt động

Để biết thêm thông tin về đăng ký các loại bài đăng, hãy kiểm tra WP Codex

Vô hiệu hóa Gutenberg cho Hộp Meta

Một số plugin của tôi sử dụng nhiều hộp meta và sẽ cần thời gian đáng kể để làm lại mọi thứ. May mắn thay, có một cách để tắt trình chỉnh sửa Gutenberg trên bất kỳ màn hình nào sử dụng hộp meta của bạn

// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
9

Ví dụ, chúng ta có thể chuyển nó làm đối số khi thêm hộp meta

// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
7

Lưu ý trong tham số thứ bảy,

// Disable Gutenberg

if (version_compare($GLOBALS['wp_version'], '5.0-beta', '>')) {
	
	// WP > 5 beta
	add_filter('use_block_editor_for_post_type', '__return_false', 10);
	
} else {
	
	// WP < 5 beta
	add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
	
}
0, chúng ta đang chuyển đối số
// disable for posts
add_filter('gutenberg_can_edit_post', '__return_false', 10);

// disable for post types
add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
9 dưới dạng một mục mảng. Để biết thêm chi tiết về cách thêm hộp meta, hãy truy cập WP Codex

Con đường “cũ”

Phương pháp này không được khuyến nghị, nhưng đáng được đề cập vì nó làm sáng tỏ những gì có thể. Chỉ cần thêm dòng sau vào tệp

// Disable Gutenberg

if (version_compare($GLOBALS['wp_version'], '5.0-beta', '>')) {
	
	// WP > 5 beta
	add_filter('use_block_editor_for_post_type', '__return_false', 10);
	
} else {
	
	// WP < 5 beta
	add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
	
}
2 của trang web của bạn, ngay trước dòng có nội dung "Đó là tất cả, ngừng chỉnh sửa"

// Disable Gutenberg

if (version_compare($GLOBALS['wp_version'], '5.0-beta', '>')) {
	
	// WP > 5 beta
	add_filter('use_block_editor_for_post_type', '__return_false', 10);
	
} else {
	
	// WP < 5 beta
	add_filter('gutenberg_can_edit_post_type', '__return_false', 10);
	
}
1

Sau khi thực hiện việc này, Gutenberg sẽ bị tắt và màn hình Trình chỉnh sửa cổ điển được bật trên tất cả các màn hình “Chỉnh sửa”. Nhưng một lần nữa, đây là một cách cũ hơn để vô hiệu hóa Gutenberg. Vui lòng sử dụng một trong các phương pháp trước đó để thay thế

Lưu ý về Trường tùy chỉnh

Nếu bạn đang làm việc với Trường tùy chỉnh và trình chỉnh sửa Gutenberg, bạn sẽ nhận thấy rằng hộp meta “Trường tùy chỉnh” không được hiển thị trên màn hình G7G theo mặc định

Để giải quyết vấn đề này, tôi đã viết một plugin khôi phục hiển thị hộp meta Trường tùy chỉnh. Trường tùy chỉnh cho Gutenberg. Rất nhiều plugin của tôi sử dụng các trường tùy chỉnh, vì vậy plugin này đảm bảo rằng người dùng sẽ có thể nhìn thấy chúng trên màn hình hỗ trợ Gutenberg. Cảm ơn bạn, tôi. . )

Thưởng

Giải pháp trên đủ đơn giản, tuy nhiên bạn có thể muốn tiến xa hơn một chút và ẩn dòng chữ “Thử Gutenberg” trên màn hình quản trị. Để làm như vậy, bạn có thể cài đặt plugin Dismiss Gutenberg Nag

từ chối trách nhiệm

Công nghệ Gutenberg không ngừng thay đổi. Vì vậy, hãy đảm bảo kiểm tra các phương pháp mã trên với phiên bản WP/G7G mới nhất trước khi triển khai trên trang web trực tiếp. Và tất nhiên, plugin Vô hiệu hóa Gutenberg sẽ được cập nhật và luôn cập nhật chức năng G7G mới nhất. Chúc mừng mọi người