Sửa đổi các plugin WordPress
Tôi có câu hỏi rất đơn giản về việc thực hiện các thay đổi đối với một plugin WordPress. Tôi xin lỗi vì sự đơn giản của câu hỏi của tôi, vì tôi rất mới làm việc với mã có thể là mã nguồn mở và mới để phát triển plugin.
Tôi đã tìm thấy một plugin cung cấp giải pháp tốt cho dự án mà tôi đang thực hiện. Tuy nhiên, để làm cho nó hoạt động tốt hơn cho nhu cầu của tôi, tôi đã sửa đổi mã. Plugin có giấy phép "GPLv2 trở lên", dựa trên điều này có vẻ như nói rằng các sửa đổi đối với plugin là tốt, miễn là tôi ghi nhận bất kỳ thay đổi nào mà tôi đã thực hiện và tôi xuất bản plugin theo "GPLv2 trở lên" giấy phép quá.
Do những sửa đổi mà tôi đã thực hiện đối với plugin, tôi muốn có thể cung cấp nó cho những người khác như một phần của công việc khách hàng. Tuy nhiên, tôi không chắc về cách tốt nhất để tiến lên.
Sẽ tốt hơn nếu xuất bản plugin có giấy phép "GPLv2 trở lên" và tự cập nhật nó (tôi đã thực hiện những thay đổi rất nhỏ đối với plugin)?
Hay tốt hơn là tôi nên liên hệ với chủ sở hữu ban đầu của plugin để cộng tác và đề xuất các thay đổi của tôi? Nếu chủ sở hữu ban đầu không chấp nhận các thay đổi của tôi, tôi có những lựa chọn nào?
Để trả lời câu hỏi của @ wrydere:
- Plugin này miễn phí, hiện không cung cấp các bản nâng cấp trả phí hoặc tạo ra bất kỳ loại lợi nhuận nào.
- Chắc chắn không có thời gian để duy trì phiên bản plugin của riêng tôi. Thật tuyệt nếu tôi có thể làm cho khách hàng, nhưng tôi không thấy điều đó thực tế xảy ra. Tuy nhiên, nếu tôi duy trì một nhánh plugin của riêng mình, nếu chủ sở hữu ban đầu đẩy các bản cập nhật, liệu tôi có chấp nhận các bản cập nhật đó (cùng với các thay đổi của riêng tôi) nhắc bảng điều khiển WordPress liên tục yêu cầu tôi cập nhật plugin không (vì mã không 't "khớp")? Về cơ bản, tôi muốn có thể chấp nhận các bản cập nhật từ chủ sở hữu mỗi khi cập nhật được đẩy và vẫn giữ các thay đổi của tôi mà không cần WordPress thông báo rằng tôi cần "cập nhật" plugin.
- Hiện tại, không, tôi không nghĩ rằng hành vi cần được thực hiện trong một plugin phụ. Nó có thể là? Có lẽ. Nhưng hầu hết các công việc nặng nhọc đã được thực hiện với plugin này, vì vậy việc tạo một plugin mới sẽ là tạo lại bánh xe.
Trả lời
Với tinh thần của phần mềm nguồn mở, tôi chắc chắn sẽ bắt đầu bằng cách liên hệ với nhà phát triển ban đầu. Nếu các thay đổi của bạn là một cải tiến đối với cơ sở mã và không đưa chức năng của plugin theo hướng mới, thì sự cộng tác có thể được hoan nghênh.
Nếu các sửa đổi của bạn bị nhà phát triển ban đầu từ chối, có một số điều khác cần xem xét trước khi bạn tiếp tục:
Plugin mà bạn đã chia ban đầu là plugin miễn phí hay trả phí? Hay nó miễn phí nhưng cung cấp các bản nâng cấp trả phí (freemium)? Nếu nó đang tạo ra doanh thu theo bất kỳ cách nào, thì việc bẻ khóa nó và phát hành lại với những thay đổi nhỏ là điều đáng nghi ngờ về mặt đạo đức.
Bạn có thời gian và băng thông cũng như mong muốn duy trì một phiên bản mới, được phân nhánh của plugin gốc? Nếu không, bạn có thể không muốn phát hành nó công khai chỉ để nhận những thay đổi rất nhỏ của bạn vào tay người khác. Tốt hơn hết là bạn nên duy trì nhánh plugin của riêng mình cho các dự án của riêng bạn.
Các sửa đổi trong hành vi có thể được thực hiện trong một plugin phụ không? Có khá nhiều ví dụ về các plugin yêu cầu / sửa đổi / xây dựng dựa trên các plugin khác. Lộ trình này yêu cầu phải bám sát các bản cập nhật cho cả lõi WP và plugin ban đầu, điều này có thể khiến bạn đau đầu, nhưng nếu có thể thực hiện các thay đổi của bạn thông qua hook, action và ghi đè (an toàn & lành mạnh) các chức năng từ plugin gốc, đây có thể là một lộ trình để khám phá.
Xin lỗi vì đã không đưa ra câu trả lời dứt khoát, nhưng tình hình có thể dẫn đến nhiều kết quả có thể xảy ra.