Bootstrap Skip to main content
Use code LAMVT for an extra 10% off!

From the Firehose

5/5 - (1 bình chọn)

Câu hỏi

Nếu tôi viết một private plugin thì có cách nào để cập nhật các phiên bản mới của nó bằng cơ chế tự động cập nhật của WordPress không?

Tôi muốn gói gọn chức năng này. Nhưng riêng đối với 5 blog của riêng tôi và các blog khác nữa của tôi, sử dụng nguồn public plugins không phải là một cách hay. Nhưng tôi thích cơ chế cập nhật dễ dàng.

Có cách nào để làm được điều đó không?

Cách Updates dành cho private Plugin admin_php

artlung

Tôi nghĩ rằng vấn đề của bạn cũng đã được thảo luận ở các câu hỏi khác nói về tùy chọn có thể lọc (filterable option) trên danh sách thư wp-hackers trong ngày. Và vấn đề này có vẻ như không thể giải quyết được. Tôi nghĩ cuộc thảo luận tương tự nằm trong chủ đề này: lists.automattic.com/pipermail/wp-hackers/2009-February/… Nhưng cũng có thể là tôi nhầm.

– ZaMoose

Bạn có thể sử dụng kernl.us để update plugin được lưu trữ (hosted plugin). – Jack Slingerland

Câu trả lời chính xác nhất

Có vẻ như applicable code (code áp dụng) nằm trong wp-includes/update.php, wp_update_plugins():

$to_send = (object) compact(‘plugins’, ‘active’);

$options = array(
‘timeout’ => ( ( defined(‘DOING_CRON’) && DOING_CRON ) ? 30 : 3),
‘body’ => array( ‘plugins’ => serialize( $to_send ) ),
‘user-agent’ => ‘WordPress/’ . $wp_version . ‘; ‘ . get_bloginfo( ‘url’ )
);

$raw_response = wp_remote_post(‘http://api.wordpress.org/plugins/update-check/1.0/’, $options);

Đặc biệt, nó kiểm tra api.wordpress.org. Nói về mặt kỹ thuật, nó có thể chuyển key vào trong $to_send để ủy quyền kiểm tra. Nhưng theo như tôi được biết thì đó không phải là một tính năng được hỗ trợ.

Nếu bạn nối (hook) vào set_site_transient_update_plugins, bạn có thể thêm package details của riêng mình vào biến này. Có vẻ như những giá trị đó sẽ được tin cậy nếu bạn chạy plugin updater. Hãy xem wp-admin/update.php và wp-admin/includes/class-wp-upgrader.php. Với code trong hai hàm này, update server của riêng bạn sẽ có thể được thêm vào. Bạn chỉ cần xem xem package details được định dạng (format) như thế nào và làm cho nó phù hợp.

Câu trả lời của Annika Backstrom


Plugin này sẽ giúp bạn

Updates tự động cho các plugins tư nhân và thương mại 

Từ lâu nay, chỉ các plugin được lưu trữ trong thư mục plugin WordPress.org chính thức mới hỗ trợ cập nhật tự động. Giờ đây, tôi đã viết một thư viện PHP mà bạn có thể sử dụng để thêm khả năng cập nhật tự động vào bất kỳ plugin nào. Các plugin công khai, riêng tư hay thương mại đều giống nhau – tất cả giờ đây đều có thể có được những lợi ích từ các thông báo cập nhật tự động và nâng cấp chỉ với một cú nhấp chuột.

GitHub repository (kho lưu trữ GitHub)

Câu trả lời của agileapricot

Bạn cũng có thể quan tâm đến việc quản lý các plugins theo cách của bạn … có thể với gói wp-update-server, được viết bởi cùng một tác giả github.com/YahnisElsts/wp-update-server. Sử dụng server này có thể giúp bạn bảo vệ các plugin của bạn, như được mô tả ở đây: w-shadow.com/blog/2013/03/19/… – SimonSimCity


Nếu bạn thích miễn phí … và muốn sử dụng những cái như GitHub, GitLab, hoặc BitBucket, những cái này có chất lượng tốt và là plugin được hỗ trợ để xử lý nó (cái này hỗ trợ cho plugin tư nhân và doanh nghiệp):

https://github.com/afragen/github-updater

Câu trả lời của sMyles

Wow! Có vẻ như đây một dự án được hỗ trợ tốt! – Armstrongest

Dựa vào một plugin khác có vẻ không phải là một giải pháp hay. – kontur 

@kontur Rất đúng, nhưng đây là một mã nguồn mở và liên tục được cập nhật. Nó có thể được sử dụng như một framework hoặc chỉ như một ví dụ về code để xây dựng cái của riêng bạn. – sMyles


Tôi cũng đang nghiên cứu về vấn đề này. Dưới đây là một vài liên kết mà tôi đã tìm thấy, nó có thể hữu ích:

Cái đầu tiên là một số thông tin và con trỏ tới API nâng cấp. Link thứ hai là đoạn code chỉ cách yêu cầu thông tin từ API.

Câu trả lời của Dougal Campbell


Bạn có thể muốn tham khảo plugin WordPress Development KitGần đây tôi đã di chuyển hệ thống cập nhật độc quyền của mình sang plugin này. Plugin hiện hoạt động như bộ xử lý đầu cuối (back-end processor) cho các bản updates premium plugin của tôi.

Điều này tương tự với giải pháp được cung cấp bởi agileapricot ở trên. Nó sẽ cài đặt tương tự như một plugin tiêu chuẩn trên trang web WordPress. Bạn lưu trữ các tệp premium .zip của mình và plugins.json trong các thư mục production hoặc prerelease trên máy chủ (được chỉ định trong các settings cho plugin).

Plugin cũng cho phép bạn liệt kê các phiên bản plugin và thậm chí có thể cung cấp download cho các tệp trên trang công khai, được bảo vệ bằng mật khẩu hoặc các trang được bảo vệ theo đăng ký. Bạn có thể xem ví dụ về danh sách phiên bản on-page tại đây.

Tôi đã sử dụng plugin này trong nhiều tháng để xuất bản nhật ký thay đổi cho các tiện ích cao cấp (premium add-ons), danh sách phiên bản hiện tại (current versions list) và danh sách download dành cho người đăng ký Premier (Premier Subscription holders) của tôi. Bây giờ, với phiên bản 0.7.01, nó đang hoạt động như đích truy vấn (query destination) cho các bản cập nhật nội tuyến WordPress (inline WordPress updates).

Hy vọng nó hữu ích.

Câu trả lời của Lance Cleveland


Nếu bạn muốn một giải pháp được lưu trữ mà bạn không phải quản lý, hãy xem Kernl (https://kernl.us). Đây là một dịch vụ cung cấp cơ sở để cập nhật các plugin và giúp dễ dàng tích hợp vào các plugin của riêng bạn.

Câu trả lời của Jack Slingerland

Nó có vẻ khả thi. – kontur

About

Chào bạn, mình là Vũ Thành Lâm.
Tri Thức là Sức Mạnh, Tri thức không của riêng ai, hãy chia sẻ nó!

Recent posts