Tự động tạo lại đường dẫn bắt buộc dựa theo tiêu đề khi đăng bài viết

Nếu bạn muốn đảm bảo rằng đường dẫn (slug) của bài viết luôn được tạo theo đúng tiêu đề mỗi lần đăng mới hoặc chỉnh sửa, bài viết này sẽ giúp bạn thực hiện điều đó một cách tự động, không cần làm thủ công.

Tự động tạo lại đường dẫn bắt buộc dựa theo tiêu đề khi đăng bài viết

Mục tiêu

  • Tự động cập nhật slug mỗi khi bạn đăng mới hoặc cập nhật bài viết
  • Đảm bảo đường dẫn luôn được đồng bộ với tiêu đề (tránh sai chính tả, link cũ…)

Cách thực hiện

Bạn chỉ cần dán đoạn mã sau vào functions.php của theme (hoặc theme con) bạn đang sử dụng:

/**
 * Tự động cập nhật slug từ tiêu đề khi đăng bài viết mới (chương)
 */
function auto_update_slug($post_id, $post, $update) {
    // Bỏ qua nếu là revision hoặc không phải post thường
    if (wp_is_post_revision($post_id) || $post->post_type !== 'post') {
        return;
    }

    // Lấy slug hiện tại và slug mới dự kiến từ tiêu đề
    $current_slug = $post->post_name;
    $new_slug     = sanitize_title($post->post_title);

    // Chỉ cập nhật nếu slug khác nhau
    if ($current_slug !== $new_slug && !empty($new_slug)) {
        // Gỡ tạm hook để tránh vòng lặp
        remove_action('save_post', 'auto_update_slug', 10);

        // Cập nhật slug
        wp_update_post([
            'ID' => $post_id,
            'post_name' => $new_slug
        ]);

        // Gắn lại hook sau khi cập nhật
        add_action('save_post', 'auto_update_slug', 10, 3);
    }
}
add_action('save_post', 'auto_update_slug', 10, 3);

Một số lưu ý

  • Nếu bạn dùng custom post type như chapter, news hoặc review, hãy thay 'post' bằng loại bài đăng tương ứng.
  • Slug sẽ luôn bị cập nhật lại theo tiêu đề mới — kể cả khi bạn chỉ chỉnh sửa nội dung.
  • Nếu bạn muốn chỉ áp dụng khi đăng mới, bạn có thể thêm điều kiện if ( !$update ).

Kết luận

Với đoạn mã trên, bạn không còn lo bài viết bị sai slug hay phải sửa tay. Đây là cách đơn giản và gọn gàng để đồng bộ hóa URL với tiêu đề, giúp tăng tính nhất quán và hỗ trợ SEO.

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

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...