Cho phép tác giả sửa bài đã đăng WordPress

11 giờ ago, WordPress Plugin, Views
Cho phép tác giả sửa bài đã đăng WordPress

Cho Phép Tác Giả Sửa Bài Đã Đăng WordPress: Hướng Dẫn Chi Tiết

WordPress, một nền tảng quản lý nội dung (CMS) phổ biến, cung cấp nhiều tùy chọn để quản lý quyền truy cập và chỉnh sửa bài viết. Một trong những nhu cầu phổ biến là cho phép tác giả sửa bài viết mà họ đã đăng sau khi đã xuất bản. Điều này có thể cần thiết để sửa lỗi chính tả, cập nhật thông tin, hoặc cải thiện nội dung tổng thể. Bài viết này sẽ hướng dẫn bạn qua các phương pháp khác nhau để cho phép tác giả sửa bài đã đăng trên WordPress, bao gồm cả các tùy chọn mặc định của WordPress và sử dụng plugin.

Quyền Hạn Mặc Định Của WordPress và Vai Trò Người Dùng

WordPress sử dụng một hệ thống vai trò người dùng để kiểm soát quyền truy cập và khả năng của người dùng trên trang web. Các vai trò chính bao gồm:

  • Administrator (Quản trị viên): Có toàn quyền truy cập và kiểm soát mọi khía cạnh của trang web.
  • Editor (Biên tập viên): Có thể xuất bản, chỉnh sửa và xóa bài viết của bất kỳ ai, cũng như quản lý các danh mục và thẻ.
  • Author (Tác giả): Có thể viết, chỉnh sửa và xuất bản bài viết của riêng mình.
  • Contributor (Người đóng góp): Có thể viết bài viết nhưng không thể xuất bản chúng. Bài viết cần được phê duyệt bởi biên tập viên hoặc quản trị viên.
  • Subscriber (Người đăng ký): Chỉ có thể xem hồ sơ của mình và để lại bình luận.

Theo mặc định, vai trò “Author” chỉ có quyền chỉnh sửa bài viết của mình khi chúng ở trạng thái “Draft” (Bản nháp) hoặc “Pending Review” (Chờ duyệt). Sau khi bài viết đã được xuất bản, quyền chỉnh sửa sẽ bị hạn chế. Điều này có nghĩa là nếu bạn muốn cho phép tác giả sửa bài đã đăng, bạn cần điều chỉnh các quyền mặc định này.

Thay Đổi Quyền Hạn Mặc Định thông qua functions.php

Một cách để cho phép tác giả sửa bài đã đăng là chỉnh sửa tệp functions.php của theme WordPress. Cách này đòi hỏi một chút kiến thức về lập trình PHP. Hãy cẩn thận khi chỉnh sửa tệp này, vì một lỗi nhỏ có thể làm hỏng trang web của bạn. Tốt nhất là sao lưu tệp functions.php trước khi thực hiện bất kỳ thay đổi nào.

Bạn có thể thêm đoạn mã sau vào tệp functions.php để cho phép tác giả chỉnh sửa bài viết đã đăng:


  function allow_author_edit_published_posts() {
    $author_role = get_role( 'author' );
    $author_role->add_cap( 'edit_published_posts' );
  }
  add_action( 'after_switch_theme', 'allow_author_edit_published_posts' );
  

Đoạn mã này làm gì?

  • get_role( 'author' ): Lấy đối tượng vai trò “author”.
  • add_cap( 'edit_published_posts' ): Thêm khả năng “edit_published_posts” (chỉnh sửa bài viết đã đăng) vào vai trò “author”.
  • add_action( 'after_switch_theme', 'allow_author_edit_published_posts' ): Đảm bảo rằng hàm allow_author_edit_published_posts() được thực thi sau khi theme được kích hoạt. Điều này đảm bảo rằng quyền hạn được thêm vào vai trò “author”.

Sau khi thêm đoạn mã này và kích hoạt theme (hoặc kích hoạt lại theme hiện tại), tác giả sẽ có thể chỉnh sửa bài viết đã đăng của mình.

Quan trọng: Việc chỉnh sửa tệp functions.php trực tiếp có thể không phải là lựa chọn tốt nhất, đặc biệt nếu bạn không quen thuộc với lập trình PHP. Thay vào đó, bạn có thể cân nhắc sử dụng một plugin (xem phần sau) hoặc tạo một plugin tùy chỉnh để chứa đoạn mã này. Điều này giúp tránh các vấn đề khi bạn cập nhật theme.

Sử Dụng Plugin để Quản Lý Quyền Hạn Người Dùng

Một phương pháp an toàn hơn và dễ dàng hơn để cho phép tác giả sửa bài đã đăng là sử dụng plugin WordPress. Có nhiều plugin miễn phí và trả phí có sẵn cho phép bạn quản lý quyền hạn người dùng một cách chi tiết. Một số plugin phổ biến bao gồm:

  • User Role Editor: Đây là một plugin miễn phí mạnh mẽ cho phép bạn chỉnh sửa các vai trò người dùng hiện có và tạo vai trò mới. Bạn có thể dễ dàng thêm hoặc xóa các quyền hạn khác nhau, bao gồm cả quyền “edit_published_posts”.
  • Members: Một plugin miễn phí khác cung cấp giao diện thân thiện để quản lý vai trò và quyền hạn người dùng. Nó cũng cho phép bạn tạo nội dung chỉ dành cho thành viên.
  • Advanced Access Manager (AAM): Một plugin cao cấp hơn cung cấp nhiều tính năng nâng cao, bao gồm quản lý quyền truy cập theo vai trò, người dùng hoặc thậm chí là nội dung cụ thể.

Để sử dụng plugin User Role Editor, hãy làm theo các bước sau:

  1. Cài đặt và kích hoạt plugin User Role Editor từ kho plugin WordPress.
  2. Sau khi kích hoạt, truy cập “Users” -> “User Role Editor” trong bảng điều khiển WordPress.
  3. Chọn vai trò “Author” từ danh sách thả xuống.
  4. Tìm kiếm quyền “edit_published_posts” trong danh sách các quyền hạn.
  5. Đánh dấu vào hộp kiểm bên cạnh “edit_published_posts” để cấp quyền này cho vai trò “Author”.
  6. Nhấp vào nút “Update” để lưu các thay đổi.

Sau khi thực hiện các bước này, tác giả sẽ có thể chỉnh sửa bài viết đã đăng của mình.

Hạn Chế Thời Gian Chỉnh Sửa Bài Đã Đăng

Mặc dù việc cho phép tác giả sửa bài đã đăng có thể hữu ích, nhưng bạn có thể muốn hạn chế thời gian chỉnh sửa để đảm bảo rằng nội dung không bị thay đổi quá nhiều sau khi đã được xuất bản và lan truyền. Bạn có thể thực hiện điều này bằng cách sử dụng một plugin hoặc thêm đoạn mã vào tệp functions.php.

Sử dụng plugin là cách đơn giản hơn. Một số plugin quản lý quyền hạn người dùng cũng cung cấp tùy chọn để hạn chế thời gian chỉnh sửa. Hãy xem xét các tính năng của plugin bạn chọn để xem liệu nó có cung cấp chức năng này hay không.

Nếu bạn muốn sử dụng đoạn mã, bạn có thể thêm đoạn mã sau vào tệp functions.php của theme:


  function restrict_author_edit_time( $post_id ) {
    $limit = 24 * 60 * 60; // 24 hours in seconds
    $post = get_post( $post_id );
    $now = time();
    $published_date = strtotime( $post->post_date );

    if ( ( $now - $published_date ) > $limit && ! current_user_can( 'edit_others_posts' ) ) {
      add_filter( 'user_has_cap', 'author_cannot_edit_published_posts' );
    }
  }

  function author_cannot_edit_published_posts( $caps ) {
    $caps['edit_posts'] = false;
    return $caps;
  }

  add_action( 'load-post.php', 'restrict_author_edit_time' );
  add_action( 'load-post-new.php', 'restrict_author_edit_time' );
  

Đoạn mã này làm gì?

  • restrict_author_edit_time( $post_id ): Hàm này được gọi khi trang chỉnh sửa bài viết được tải.
  • $limit = 24 * 60 * 60;: Xác định giới hạn thời gian chỉnh sửa là 24 giờ (tính bằng giây). Bạn có thể thay đổi giá trị này để đặt một giới hạn thời gian khác.
  • ( $now - $published_date ) > $limit: Kiểm tra xem thời gian đã trôi qua kể từ khi bài viết được xuất bản có vượt quá giới hạn hay không.
  • ! current_user_can( 'edit_others_posts' ): Kiểm tra xem người dùng hiện tại có quyền chỉnh sửa bài viết của người khác hay không (ví dụ: biên tập viên hoặc quản trị viên). Nếu người dùng không có quyền này và thời gian đã trôi qua vượt quá giới hạn, thì hàm author_cannot_edit_published_posts() sẽ được gọi.
  • author_cannot_edit_published_posts( $caps ): Hàm này loại bỏ quyền “edit_posts” (chỉnh sửa bài viết) của người dùng.
  • add_action( 'load-post.php', 'restrict_author_edit_time' )add_action( 'load-post-new.php', 'restrict_author_edit_time' ): Đảm bảo rằng hàm restrict_author_edit_time() được thực thi khi trang chỉnh sửa bài viết được tải.

Sau khi thêm đoạn mã này, tác giả sẽ chỉ có thể chỉnh sửa bài viết của mình trong vòng 24 giờ sau khi xuất bản. Sau thời gian này, nút “Edit” (Chỉnh sửa) sẽ bị vô hiệu hóa.

Cân Nhắc Về Kiểm Soát Phiên Bản (Version Control)

Khi cho phép tác giả sửa bài đã đăng, bạn nên cân nhắc việc sử dụng một hệ thống kiểm soát phiên bản để theo dõi các thay đổi. WordPress có tính năng “Revisions” (Bản sửa đổi) tích hợp sẵn, cho phép bạn xem các phiên bản trước của một bài viết và khôi phục chúng nếu cần thiết. Điều này rất hữu ích nếu tác giả vô tình xóa hoặc thay đổi một cái gì đó quan trọng.

Bạn có thể truy cập các bản sửa đổi bằng cách mở bài viết trong trình chỉnh sửa và tìm hộp “Revisions” ở phía bên phải của màn hình. Nếu hộp này không hiển thị, hãy nhấp vào tab “Screen Options” (Tùy chọn màn hình) ở trên cùng bên phải của màn hình và đảm bảo rằng hộp kiểm “Revisions” được chọn.

Bằng cách sử dụng hệ thống bản sửa đổi, bạn có thể dễ dàng theo dõi các thay đổi được thực hiện bởi tác giả và khôi phục các phiên bản trước nếu cần thiết.

Kết luận

Việc cho phép tác giả sửa bài đã đăng trên WordPress có thể hữu ích để đảm bảo rằng nội dung luôn chính xác và cập nhật. Bạn có thể thực hiện điều này bằng cách chỉnh sửa tệp functions.php của theme, sử dụng plugin hoặc kết hợp cả hai phương pháp. Hãy nhớ cân nhắc việc hạn chế thời gian chỉnh sửa và sử dụng hệ thống bản sửa đổi để theo dõi các thay đổi và đảm bảo rằng bạn có thể khôi phục các phiên bản trước nếu cần thiết. Bằng cách làm theo các hướng dẫn trong bài viết này, bạn có thể quản lý hiệu quả quyền truy cập và chỉnh sửa bài viết của tác giả trên trang web WordPress của mình.