Phát triển plugin: WPMU hay WP?


7

Tôi đã suy nghĩ, loại vấn đề nào tôi có thể gặp phải nếu tôi chuyển một plugin từ WPMU sang WP hoặc ngược lại.

Giả sử tôi đã phát triển một plugin từ đầu và muốn plugin đó tương thích với cả hai, tôi nên bắt đầu với WPMU hay WP?


1
nếu câu trả lời đã giúp bạn, thì bạn nên chấp nhận một trong số chúng. Có vẻ như bạn đã chấp nhận câu trả lời cho bất kỳ câu hỏi nào bạn đã hỏi, nhưng đó là một phần không thể thiếu của quy trình trên trang web này và là điều bạn nên làm. Nếu không có câu trả lời nào giúp bạn, bạn có thể đăng bình luận yêu cầu thông tin cụ thể hơn.
Ian Dunn

Câu trả lời:


8

Bạn sẽ cần phải kiểm tra trong cả hai thiết lập, bởi vì chúng hoạt động khác nhau trong rất nhiều tình huống. Một số khác biệt đáng chú ý nhất là:

  1. Nếu bạn đăng ký gọi lại kích hoạt, bạn cần kiểm tra xem kích hoạt có toàn mạng không. Nếu có, hãy chạy logic kích hoạt cho tất cả các blog thay vì chỉ blog hiện tại.
  2. Nếu plugin được kích hoạt mạng, cuộc gọi lại kích hoạt thông thường sẽ không kích hoạt khi blog mới được thêm vào, vì vậy bạn sẽ cần tạo một cuộc gọi lại bổ sung nối vào wpmu_new_bloghành động. Nó phải chuyển sang blog mới, thực hiện logic kích hoạt và sau đó khôi phục blog hiện tại. Các $idcủa blog mới được chuyển vào xử lý như các tham số đầu tiên.
  3. Nếu bạn đang tạo loại bài đăng tùy chỉnh và muốn hộp meta Đặt hình ảnh nổi bật hiển thị, bạn sẽ cần đảm bảo cài đặt Nút tải lên phương tiện có bật hộp kiểm Hình ảnh. Bạn có thể sử dụng get_site_option( 'mu_media_buttons' )để kiểm tra nó và update_site_option()thiết lập nó.
  4. Đường dẫn đến thư mục tải lên là khác nhau, nhưng bạn sẽ ổn miễn là bạn luôn sử dụng wp_upload_dir () thay vì các hằng số.
  5. Mỗi blog có bản sao của hầu hết các bảng cơ sở dữ liệu và chúng được thêm tiền tố vào ID blog. Thông thường, bạn không cần phải làm gì đặc biệt, miễn là bạn đang sử dụng API để tương tác với cơ sở dữ liệu - điều mà bạn nên, bất cứ khi nào có thể.
  6. Các bảng người dùngusermeta là ngoại lệ; chúng được chia sẻ trên tất cả các blog.
  7. Gần đây đã có một vài lỗi WP-Cron [ 1 , 2 ] chỉ ảnh hưởng đến các công việc trên các cài đặt MultiSite.

Bạn có thể sử dụng switch_to_blog () nếu bạn cần tạm thời truy cập dữ liệu của một blog khác bằng các hàm API và sau đó restore_cản_blog () để chuyển trở lại.

Bạn có thể thấy một ví dụ đầy đủ về các chức năng kích hoạt bằng cách duyệt nguồn bộ xương plugin của tôi .


Không có ý kiến ​​về cơ chế kích hoạt hiện tại, nhưng 2,3,4 sẽ hoàn toàn không có sự khác biệt nếu sử dụng API thích hợp. Mặt khác, đó là vấn đề làm sai, không phải vấn đề khác biệt giữa MS và không MS.
Rarst

Chà, vâng, tôi đã đề cập đến điều đó hai lần;) Nhưng mọi người không luôn sử dụng API, ngay cả khi họ cần, vì vậy nó vẫn cần phải được nói. Ngoài ra, nó có thể tạo sự khác biệt trong các trường hợp cạnh, như nếu bạn cần tạo bảng cơ sở dữ liệu của riêng mình hoặc sử dụng thư mục tải lên tùy chỉnh cho các tệp nhất định và thư mục tải lên mặc định cho các tệp khác. Vẫn còn một số tình huống trong đó việc sử dụng API giống như cố gắng lắp một chốt tròn vào một lỗ vuông, mặc dù rất ít và xa.
Ian Dunn

4

Không có sự khác biệt.

Từ http://mu.wordpress.org/

WordPress MU không còn là một dự án riêng biệt; nó đang tiếp tục phát triển như một phần của nhánh WordPress chính dưới tên multisite hoặc MS.

Trong khi phát triển sử dụng cài đặt nhiều trang, bởi vì đôi khi việc xử lý tệp và đường dẫn hơi khó khăn một chút.


1
-1 bởi vì, trong khi về mặt kỹ thuật, câu trả lời là sai lệch. Chỉ vì chúng là một phần của cùng một cơ sở mã không có nghĩa là chúng có đường dẫn thực hiện giống hệt nhau; họ không. Ngoài ra, thử nghiệm trên chỉ WPMS là không đủ vì sẽ có các lỗi chỉ xuất hiện trong WP tiêu chuẩn không hiển thị trong MS. Nếu đây là 0 tôi sẽ không đánh giá thấp nó, nhưng tôi nghĩ rằng việc ngồi ở +4 cho thấy đó là một câu trả lời đúng và tôi không nghĩ rằng đó là.
Ian Dunn

-1

Nếu bạn chưa bao giờ xây dựng một plugin trước đây và bạn dự định phát hành một plugin vào kho lưu trữ WordPress, thì bạn sẽ có một thời gian đủ khó để sửa tất cả các lỗi WP để thậm chí lo lắng về khả năng tương thích WPMU.

Đi với WP trước và tìm hiểu nó từ trong ra ngoài. Sau đó, bạn có thể bắt đầu tìm hiểu về những gì làm cho plugin WPMU khác với plugin WP.

Plugin WP là một plugin không tương thích với WP Multi-site. Thực sự có rất nhiều điều bạn cần hiểu về các plugin để thậm chí bắt đầu hiểu các yêu cầu của nhà phát triển WPMU mà bạn sẽ phải đối mặt.


Ngày nay thậm chí còn có thứ gọi là "plugin WPMU" phải không? Đó là cùng một WP, sự khác biệt duy nhất sẽ là chức năng đa cụ thể và có vẻ như câu hỏi không phải là như vậy. Bất kỳ plugin (được mã hóa chính xác) nào cũng sẽ hoạt động tốt trong nhiều trang - Một plugin WP là một plugin không tương thích với tuyên bố nhiều trang của WP không có ý nghĩa gì với tôi.
Rarst

Tôi xin lỗi điều đó, câu nói đó không có ý nghĩa với bạn. Khi tôi phát triển hàng trăm plugin mỗi năm, tôi có xu hướng nghĩ rằng tôi biết tôi đang nói về cái gì. Bạn có thể dễ dàng phát triển một plugin sẽ làm sập cài đặt WPMU và chỉ hoạt động tốt khi cài đặt WP. Có hai hệ thống này bây giờ được hợp nhất, nhưng chức năng hoàn toàn khác nhau. Bạn không cần phải thiếu chức năng cụ thể của WPMU. italic Bất kỳ plugin nào (được mã hóa chính xác) sẽ hoạt động trong nhiều trang chỉ in nghiêng tốt Ngay cả khi bạn nói nó NÊN LÀM VIỆC vì bạn không có ý tưởng.
Tư vấn thương mại điện tử

1
Tôi đồng ý với Jonathon và tôi cũng đang nói từ kinh nghiệm cá nhân. Làm cho một plugin hoạt động với WPMS cần thêm nỗ lực để khắc phục các sự cố cụ thể trong môi trường WPMS. Tùy thuộc vào plugin của bạn, điều đó có thể chỉ có nghĩa là xử lý kích hoạt trên toàn mạng, nhưng nó cũng có thể bao gồm các tác vụ khác, như bật các nút phương tiện được tắt theo mặc định trong WPMS (và theo mặc định trong WP). Ngoài ra, có những trường hợp cạnh mà lỗi chỉ xuất hiện trong WPMS, v.v. @Rarst, tôi thách bạn tải xuống 10 plugin mới được phát hành ngẫu nhiên từ repo, kích hoạt mạng và kiểm tra xem có bao nhiêu chức năng hoàn hảo.
Ian Dunn
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.