2012-11-14 37 views
5

Tôi đang làm việc với wordpress và tôi tìm kiếm để sửa đổi các chức năng của plugin mà không cần chỉnh sửa plugin cho chức năng không phá vỡ sau khi cập nhật.Làm thế nào để sửa đổi chức năng plugin wordpress mà không cần chỉnh sửa plugin?

Nhưng tôi chưa tìm thấy giải pháp. Bạn có thể giúp tôi được không ?

Cảm ơn trước

+2

Bạn có thể chỉ định ** mà ** plugin bạn muốn sửa đổi không? Rất tiếc, hầu hết các plugin không được viết theo cách cho phép ghi đè chức năng của chúng mà không sửa đổi mã của chúng, nhưng NẾU bạn may mắn thì plugin bạn muốn chỉnh sửa có thể là plugin sẽ cho phép bạn thực hiện điều đó bằng cách sử dụng móc và bộ lọc. –

+0

Tôi muốn sửa đổi plugin WPML. nhưng do_action() móc không có mặt trong hầu hết các chức năng plugin này –

+0

nếu nó là một lớp, bạn có thể TRY để mở rộng lớp .. –

Trả lời

1

Tôi đã gặp sự cố này nhiều lần. Như những người khác đã nói, bạn không thể sửa đổi các hàm PHP. Mở rộng lớp sẽ không hoạt động vì plugin sẽ khởi tạo lớp gốc, không phải phiên bản mở rộng của bạn.

Giải pháp tốt nhất (đã làm việc cho tôi nhiều lần) là thêm móc để các plugin hiện và nộp lại cho tác giả ban đầu như sau:

  1. Nếu plugin gốc là trên github, ngã ba và bản sao nó. Nếu không, hãy đặt plugin gốc dưới chế độ kiểm soát cục bộ git. Bạn có thể cần phải làm một diff hoặc rollback sau đó.
  2. Tạo plugin mới có tên là WPML-extensions (hoặc một cái gì đó)
  3. Tìm kiếm mã plugin gốc cho các tác vụ hoặc bộ lọc để sử dụng. Nếu chúng đã sẵn sàng và làm những gì bạn cần, hãy sử dụng chúng bằng cách gắn chúng với plugin WPML-extensions.
  4. Nếu móc chính xác không có trong plugin WPML, hãy thêm chúng và sau đó làm theo các bước ở trên. Hãy thử sử dụng phiên bản mới nhất của plugin gốc để tối đa hóa cơ hội thay đổi của bạn được chấp nhận.
  5. Nếu bạn đã sửa đổi plugin gốc bằng cách thêm tác vụ hoặc bộ lọc, hãy thực hiện git diff để lưu bản vá để bạn có thể áp dụng lại sau. Gửi bản vá cho tác giả plugin gốc và hy vọng điều tốt nhất. Nếu bạn bị mắc kẹt chỉ với các hành động và bộ lọc, tác giả sẽ rất có thể chấp nhận các thay đổi của bạn ngay lập tức.
  6. Nếu bạn cập nhật plugin gốc sau này, bạn cần phải áp dụng lại các thay đổi của mình cho đến khi chúng được chấp nhận. Bạn có thể sử dụng tập tin diff. Có thể có cách để sử dụng git rebase để phát lại các thay đổi bạn đã thực hiện sau khi cập nhật plugin.
Các vấn đề liên quan