Gutenberg

Hướng dẫn toàn tập cách tắt Gutenberg

Gutenberg sẽ sớm có mặt trong WordPress Core phiên bản 5.0 (hiện tại đang là 4.9.5). Đây là tin tuyệt vời đối với một số người, nhưng cũng là cơn ác mộng với rất nhiều người dùng khác.

Gutenberg

Gutenberg là gì?

Gutenberg là một trình soạn thảo mới được nhóm phát triển WordPress dự kiến cho vào và thay thế trình soạn thảo mặc định của WordPress hiện nay.

Gutenberg là một cuộc cách mạng sắp xảy ra, bao gồm thay thế trình soạn thảo cơ bản bằng rất nhiều nội dung có bố cục, media và sắp xếp phức tạp hơn.

WordPress Core dự kiến sẽ cho Gutenberg vào từ phiên bản 5.0. Với các phiên bản 4.9 và thấp hơn, bạn có thể trải nghiệm thử bằng cách cài plugin Gutenberg tại đây.

Tại sao Gutenberg không hẳn là lựa chọn cho website của bạn?

Với 99,9999% (ước tính) các trang web WordPress hiện đang được thiết lập để làm việc mà không có Gutenberg, những thay đổi to lớn như vậy sẽ ảnh hưởng đến hàng triệu trang web. Không phải ai cũng sẵn sàng để kiểm tra và cập nhật nội dung cho phù hợp, đặc biệt là các website của doanh nghiệp hay tổ chức.

Nhưng bạn có thể từ chối Gutenberg

Nếu điều đó giống như tình huống bạn sẽ gặp phải, về cơ bản ta có hai lựa chọn:

  1. Đầu tư 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 tại cho Gutenberg.
  2. HOẶC, chỉ cần vô hiệu hóa Gutenberg cho đến khi bạn sẵn sàng cho nó.

Với nhiều bên, việc bỏ ra thời gian và tiền bạc cần để thực hiện và hỗ trợ Gutenberg là đương nhiên để mang tính ổn định và lâu dài về sau. Tuy nhiên, phần lớn người dùng và lập trình viên đều khá bối rối và không biết về những thay đổi lớn trong cửa hàng đối với họ và các trang web của họ do WordPress cung cấp. Như vậy đối tượng nằm ngoài tầm với của việc nâng cấp Gutenberg.

Vì vậy, trong bài viết này, ta sẽ cùng tìm cách để trì hoãn sử dụng Gutenberg cho tới khi có thời gian để nâng cấp và sẵn sàng hơn.

Tắt Gutenberg bằng các plugin WordPress

Cách dễ nhất để tắt Gutenberg là cài đặt plugin miễn phí Disable Gutenberg. Đây là một plugin đơn giản giúp tắt Gutenberg và khôi phục lại màn hình WP Editor mặc định. Chỉ cần bật plugin, và thiết lập tùy chọn của bạn. Các tùy chọn bao gồm:

  • Tắt Gutenberg hoàn toàn (trên 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ể
  • Tắt Gutenberg theo vai trò người dùng cụ thể.

Vì vậy, theo đánh giá của wpvn.xyz, nó đủ độ linh hoạt nhưng đơn giản, và siêu dễ sử dụng. Xem tài liệu để biết thêm chi tiết.

Tắt Gutenberg qua code (functions.php)

Nếu bạn không muốn cài plugin trên, dưới đây là các cách can thiệp vào code của giao diện hiện tại và tắt Gutenberg.

Tắt Gutenberg hoàn toàn

Để tắt hoàn toàn Gutenberg (còn gọi là G7G), hãy thêm dòng sau thông qua functions.php hoặc plugin tùy chỉnh (hoặc thậm chí là một plugin phải sử dụng!):

add_filter ('gutenberg_can_edit_post_type', '__return_false');

Đó là cách nên dùng để tắt Gutenberg. Nó đơn giản trả về một giá trị false cho bộ lọc gutenberg_can_edit_post_type của Gutenberg, sau đó sẽ tắt cho tất cả các loại bài đăng (nghĩa là hoàn toàn).

Tắt Gutenberg cho các loại bài đăng tùy chỉnh

Trình soạn thảo Gutenberg chỉ hoạt động trên các bài đăng WP khi nó được kích hoạt. Theo mặc định, điều này bao gồm cả bài viết và trang. Bạn có thể tắt các loại bài đăng khác bằng bộ lọc tương tự, gutenberg_can_edit_post_type.

Ví dụ:

function digwp_disable_gutenberg($is_enabled, $post_type) {
if($post_type === 'news') return false;
  return $ is_enabled;
}
add_filter('gutenberg_can_edit_post_type', 'digwp_disable_gutenberg');

Ở đây chúng tôi chỉ tắt Gutenberg cho custom post type. Bạn có thể thay thế bằng tên post type của bạn để tắt nó như ví dụ trên.

Tắt Gutenberg khi đăng ký các loại bài đăng

Bạn cũng có thể tắt Gutenberg khi đăng ký các custom post type. Phương án này chỉ có ý nghĩa đối với các custom post type không sử dụng trình soạn thảo bài đăng vì nó sẽ vô hiệu hóa toàn bộ phần biên tập. Dưới đây là ví dụ:

$args = array(
  'label'    => __('News'),
  'labels'   => $labels,
  'supports' => array(
    'author',
    'custom-fields',
     // 'editor', // <-- bỏ dòng này nếu có
    'title',
    'thumbnail'
  ),
  'has_archive' => false,
  'hierarchical' => false
);
register_post_type('news', $args);

Tắt Gutenberg khi đăng ký post type bằng REST API

Một cách khác để vô hiệu hóa 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ố show_in_rest thành false, như ví dụ dưới đây:

$args = array(
  'label'        => __('News'),
  'labels'       => $labels,
  'show_in_rest' => false, // Set thành false để tắt Gutenberg
  'supports'     => array(
    'author',
    'custom-fields',
    'editor',
    'title',
    'thumbnail'
  ),
  'has_archive' => false,
  'hierarchical' => false
);
register_post_type('news', $args);

Tham khảo register_post_type để nắm rõ hơn.

Tắt Gutenberg dành cho Meta Boxes

Nếu bạn đang dùng meta box thì rõ ràng việc sử dụng Gutenberg trong nhiều tình huống sẽ gặp xung đột rất nặng. Ta sẽ có thể sử dụng cách thức sau để đảm bảo tắt Guternberg trên các field nhập trong metabox:

add_meta_box('metabox_id', 'Metabox Title', 'metabox_callback', null, 'advanced', 'default', array('__block_editor_compatible_meta_box' => false));

Và cả cách thức “cũ” nữa

Cách này dù không phải là cách nên dùng, nhưng nó gần như làm đúng những gì ta mô tả. Bạn sửa file wp-config.php và thêm dòng sau:

$_GET['classic-editor'] = true;

Lưu ý về sử dụng Custom Field

Nếu bạn đang làm việc với Custom Fields và trình biên tập Gutenberg, bạn sẽ nhận thấy rằng meta box “Custom Field” không được hiển thị trên màn hình biên tập của Gutenberg theo mặc định.

Để giúp đỡ việc này, bạn có thể thử sử dụng plugin Custom Fields for Gutenberg và nó có thể giúp hiển thị các Custom Field để bạn chỉnh sửa khi cần.

Ẩn nút “Dùng thử Gutenberg”

Các giải pháp trên là đủ dùng rồi, tuy nhiên bạn có thể muốn đi thêm một chút và ẩn cả nút “Try 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.

Bài viết lược dịch từ DiggingIntoWordPress

Các từ khoá có thể liên quan:

  • Tắt Gutenberg
  • Vô hiệu hoá Gutenberg
  • Thay đổi trình soạn thảo WordPress
Chất lượng bài viết

Về tác giả: Khôi Pro

Technical Lead tại Solis Lab. GTE tại WordPress Việt Nam (vi.wordpress.org). Chủ nhân của blog Code Tốt, Yêu Host và WPVN.xyz.

Trả lời