Một số lý do tại sao bạn không nên hack các tập tin cốt lõi WordPress?


9

Thường thì một giải pháp nhanh chóng cho một vấn đề, có thể được giải quyết bằng cách hack lõi WordPress, đó là thay đổi mã chính là WordPress.

Đây là một con đường rất nguy hiểm để đi! Đừng làm điều đó, bao giờ!


Bạn luôn có thể thay đổi cách WordPress hoạt động, bằng cách sử dụng các plugin. Điều này đôi khi có thể khá mệt mỏi và khó khăn, nhưng công việc làm thêm luôn vượt xa các vấn đề bạn gặp phải bằng cách thay đổi chính WordPress.

Một số người sẽ nói rằng có thể có những tình huống hack lõi là giải pháp duy nhất, nhưng nếu bạn ở đây để đặt câu hỏi, bạn chắc chắn không ở trong tình huống đó .

Câu hỏi này, có nghĩa là giới thiệu về một tác phẩm tập thể về lý do tại sao bạn không bao giờ nên hack lõi WordPress, mà chúng ta có thể sử dụng làm tài liệu tham khảo. Nếu bạn có một cái gì đó để thêm, hãy thoải mái thêm nó dưới dạng một câu hỏi.


@googletorp : Bạn rock!
MikeSchinkel

Tôi không đồng ý rằng người ta không bao giờ nên làm điều đó, câu hỏi ban đầu có một số câu trả lời chỉ ra lý do tại sao, vì vậy tôi đưa ra câu hỏi này. Hơn nữa, tôi cũng không đồng ý rằng nếu bạn ở đây để đặt câu hỏi, bạn chắc chắn không ở trong tình huống đó . Đây cũng là một trang dành cho các chuyên gia , vì vậy các câu hỏi về hack cốt lõi không nên được kiểm duyệt. Nhưng có lẽ chúng ta nên thảo luận thêm về trang web meta .
Jan Fabry

Câu trả lời:


5

Lý do tốt nhất để không hack core là bất cứ điều gì bạn đang làm nên được làm lại như một bản vá cho lõi thay thế!

Rõ ràng TẤT CẢ mã của bạn sẽ không tạo ra một bản vá tốt, hoặc ít nhất là nó hiếm khi. Thay vào đó, bạn cần tìm ra cái móc nào (hành động hoặc bộ lọc) bị thiếu trong lõi sẽ cho phép bạn làm bất cứ điều gì bạn cần làm mà không cần hack lõi. Chúng ta không cần hack core khi có đủ bộ lọc / hành động, vì vậy việc tìm ra cái móc bị thiếu sẽ luôn loại bỏ nhu cầu hack core.

Điều này thường có thể yêu cầu một số cách giải quyết vấn đề khó khăn và công việc khó khăn, nhưng thường thì bạn sẽ không phát hiện ra rằng đã có một cái móc để giải quyết vấn đề của mình , vì vậy bạn không cần phải hack cốt lõi!

Trong trường hợp hiếm hoi khi thực sự không có hook, bạn chỉ cần đăng lên trac giải thích lý do tại sao hook của bạn cần tồn tại. Nếu bạn nhận được hook mới của mình thì bạn có một bản hack 1 dòng tạm thời vào lõi mà bạn không cần phải lo lắng về lần cập nhật tiếp theo.

Ngay cả khi bạn không muốn hoàn thành công việc trong Core trac (cần phải có một số thuyết phục để thực hiện công việc), ít nhất bạn đã đun được hack lõi của mình đến mức tối thiểu có thể: 1 dòng mã cho hành động / bộ lọc của bạn. Khi bạn cập nhật WP, giờ đây bạn đã thay thế tất cả mã bạn đã chuyển thành lõi bằng một dòng cần được cập nhật và plugin của bạn có thể giữ nguyên!


@Jeremy Clark - Một người tốt!
MikeSchinkel

3

Cũng có một thực tế là một khi bạn nâng cấp wordpress lên phiên bản mới nhất, tất cả các thay đổi của bạn đối với các tệp cốt lõi sẽ bị ghi đè


AFAIK đây là lý do ban đầu, không phải về mặt kỹ thuật (bạn có thể tổ chức theo cách mà nó không gây ra vấn đề gì để chỉnh sửa cài đặt của bạn) nhưng do người dùng phàn nàn trong các diễn đàn hỗ trợ Wordpress rằng bản cập nhật đã phá vỡ trang web của họ. Vì việc nâng cấp thường gây ra sự cố cho chính nó, một số người dùng muốn đảm bảo ít nhất là có được số lượng các vấn đề "do người dùng tự tạo" ở mức thấp và nằm ngoài phương trình.
hakre


1

Cảnh báo này đã cũ, rất nhiều trước thời của các hệ thống kiểm soát phiên bản phi tập trung như Git . Quay trở lại những ngày đó, để hack core, bạn cần giữ các thay đổi của mình dưới dạng một bộ các bản vá của riêng bạn. Bởi vì một số (hầu hết các nhà phát triển thiếu kinh nghiệm đấu tranh với Wordpress) đã không thực hiện các bản vá để theo dõi các thay đổi của họ, họ đã gặp phải một vấn đề: Cuối cùng, họ gặp vấn đề với việc cập nhật Worpdress lên phiên bản mới và câu nói đã ra đời.

Cảnh báo đã được nhiều hơn hoặc ít hơn một phụ tham khảo văn hóa đến "Mỗi khi bạn thủ dâm ... Thiên Chúa giết chết một con mèo con" ghi chú hình ảnh và rõ ràng có nghĩa là vui vẻ. Tuy nhiên, sự tương đồng giữa "hack wordpress core""thủ dâm" đã được đưa lên. Điều này có lẽ đã dẫn đến khá phổ biến.

Chắc chắn hack lõi là một thanh kiếm hai mặt và tôi đoán đây là lý do tại sao bạn đã hỏi.

Trước hết, nó là hoàn toàn hợp lệ, có thể và khả thi cả trong quá khứ và hiện tại để hack core. Trong quá khứ với các bộ vá và ngày nay thậm chí còn dễ dàng hơn bằng cách sử dụng git và git repo của Wordpress có sẵn công khai trên Github .

Thay vì nói với người dùng (những người thậm chí có thể không hiểu điều này là gì) họ bị câm bằng cách pha trò về họ, tốt hơn hết là khuyến khích họ và giáo dục họ.

Ngoài ra, và đây là một trong những mặt tối trong lịch sử Wordpress, cộng đồng Wordpress không quảng bá tốt ở đây. Mặc dù nó khuyến khích người dùng đưa các thay đổi ngược dòng (có nghĩa là vào kho lưu trữ mã gốc), đó là một điều tốt thông thường, Wordpress đã không làm cho các thư viện mà họ đã tiếp quản vào cây của họ từ các nguồn ngược dòng. Vì vậy, hãy giữ những câu nói này một cách nhẹ nhàng, không có gì dẫn dắt Wordpress và các nhà phát triển cốt lõi đã làm theo mã mà họ đã bị chiếm đoạt từ những người khác.

Vì vậy, nếu bạn đánh giá câu nói bằng cách nhìn vào bàn tay của các nhà phát triển, đó hoàn toàn là một trò đùa, đó chỉ là một tài liệu tham khảo văn hóa thô tục.

Gợi ý tốt nhất tôi có thể đưa ra là nếu bạn là nhà phát triển và bạn muốn thay đổi cốt lõi, hãy thực hiện. Làm điều đó theo cách nó làm hài lòng bạn chứ không phải người khác. Wordpress là phần mềm miễn phí vì một lý do và bạn nên tự hào về nó và bản thân bạn đang làm gì với nó. Công khai hoặc riêng tư. Nếu bạn đang tìm cách để làm cho điều này khả thi hơn, hãy tạo một quy trình công việc xung quanh nó như bạn cũng sẽ làm nếu bạn đang làm công việc phát triển khác.


0

Đã có 3 lần rưỡi tôi cần hack lõi để giải quyết vấn đề.

1) Đã sửa lỗi. Tôi đã báo cáo đó là một lỗi trong Trac cùng với một bản vá khác. Các chức năng đang được làm việc lại trong phiên bản tiếp theo của WP, về cơ bản vô hiệu hóa lỗi. Cho đến lúc đó tôi có thể dễ dàng áp dụng bản vá mà tôi đã tạo trên các bản cài đặt hiện tại / mới.

2) Đã thêm ghi nhật ký rất chi tiết để thử và theo dõi một vấn đề rất cụ thể mà người dùng đang gặp phải. Không phải là một tình huống hàng ngày, và chắc chắn không liên quan đến chức năng.

3a) Tôi muốn thêm một trường bổ sung vào Danh mục trong WP 2.8.5. Các móc tích hợp để thực hiện việc này không hoạt động đúng (vấn đề đã biết) và tôi tin rằng sự cố cụ thể này đã được khắc phục trong cây 2.9. Vào cuối ngày, việc triển khai đã bị lỗi và chúng tôi đã thiết kế lại tính năng này để hoạt động theo một cách khác không yêu cầu sửa đổi cốt lõi.

3b) Tôi nghĩ rằng tôi cần phải sửa đổi lõi để thay đổi các liên kết kiểm duyệt nhận xét, nhưng trong khi tôi tìm hiểu kỹ, tôi đã tìm thấy một số hook mà trước đây tôi không biết và có thể triển khai tính năng này như một plugin.


Tôi muốn nói lý do số một để hack các tập tin cốt lõi là làm cho chúng hoạt động như tôi cần chúng chứ không như những người khác nghĩ rằng tôi có thể cần chúng. Điều đó có thể tạm thời (như trong ví dụ gỡ lỗi của bạn) nhưng đây cũng có thể là một phiên bản đầy đủ hoặc thậm chí trên các phiên bản chính vì các vấn đề không được khắc phục trong gói wordpress gốc (là wordpress.org hoặc được đóng gói sẵn bởi ai đó khác).
hakre
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.