Tạo chức năng thông báo cập nhật cho các chủ đề của tôi


17

Câu hỏi rất đơn giản :) Tôi đang tạo một chủ đề mà tôi sẽ sử dụng trong nhiều trang web. Vì vậy, tôi không muốn truy cập tất cả các trang web và ftp các tệp mỗi khi tôi sửa lỗi hoặc thực hiện nâng cấp chủ đề.

Có cách nào tôi có thể tạo một hệ thống cập nhật như các plugin được lưu trữ trong thư mục plugin wordpress.

Mong nhận được câu trả lời của bạn. Cảm ơn!

Đã giải quyết:

Cảm ơn Chip Bennett cho liên kết tuyệt vời của mình. Thư viện cập nhật cho các chủ đề hiện có sẵn trong trang web đó. Bạn có thể tìm thấy nó ở đây: http://w-shadow.com/blog/2011/06/02/automatic-updates-for-commIAL-theme/

Luôn luôn xem xét quyên góp nếu bạn thấy một số tác phẩm xuất sắc được cung cấp miễn phí.


Sử dụng Trình kiểm tra cập nhật Plugin! Hoạt động cho cả plugin và chủ đề. github.com/YahnisElsts/plugin-update-checker
transbetacism

Câu trả lời:


9

Bạn cũng có thể móc vào thói quen cập nhật cốt lõi. (Tôi đang tìm kiếm các liên kết hướng dẫn, nhưng Google-fu của tôi đang làm tôi thất vọng sáng nay.)

BIÊN TẬP:

Xem nếu hướng dẫn này giúp . Nó giải thích cách thực hiện nâng cấp tự động cho các Plugin riêng tư / thương mại (tức là không lưu trữ trên kho lưu trữ).


1
Tôi nghĩ đó làpre_set_site_transient_update_plugins
Wyck

Cảm ơn! Tôi thông qua liên kết của bạn và mã plugin không hoạt động nhưng tôi yêu cầu anh chàng sửa đổi thư viện cho các chủ đề vài ngày sau khi anh ta tạo một! Và bây giờ nó hoạt động rất tốt! Tôi sẽ đặt liên kết trong câu hỏi của tôi. Cảm ơn!!
Sisir

1
Dưới đây là hướng dẫn nâng cấp tự động các chủ đề cũng từ cùng một trang: w-shadow.com/blog/2011/06/02/ Khăn
Jaroslav Klimčík

pre_set_site_transient_update_pluginschỉ chạy chủ đề được kích hoạt trên trang web chính. tất cả các cập nhật chủ đề tùy chỉnh khác sẽ không được kiểm tra ngay cả khi đó là nhiều trang web và kích hoạt chủ đề tùy chỉnh khác trên các trang web khác.
vee

3

Một câu hỏi quan tâm! Trong thực tế, tôi nghĩ bạn nên làm một dịch vụ để kiểm tra cập nhật! Chẳng hạn như yourdomain.comn / api / update-check! Sau đó, điều này có thể trả về XML hoặc JSON hoặc một số thông tin hữu ích liên quan đến cập nhật, chẳng hạn như phiên bản, url của tệp cập nhật (tệp cập nhật phải là tệp zip)!

Trong chủ đề của bạn, bạn có thể có:

    <?php define('OWN_THEME_VERSION', '1.1');

Vì vậy, khi bạn phát hiện một bản cập nhật từ url trên (yourdomain.comn / api / update-check), giả sử nó trả về dữ liệu JSO như sau: {"version": "1.2", "file": "theme.zip"}

Bạn so sánh phiên bản để kiểm tra cập nhật mới! Sau đó chuyển sang chủ đề mặc định với chức năng này http://codex.wordpress.org/Function_Reference/switch_theme (để người dùng truy cập trang web, họ thấy một trang web gây lo lắng)! Tiếp theo, mã của bạn có thể sử dụng curl hoặc thậm chí file_get_contents để tải xuống tệp zip (theme.zip trong trường hợp này)! Tiếp theo, bạn xóa tất cả tệp trong thư mục chủ đề của mình, sau đó ép tệp zip và sao chép nội dung của tệp vào thư mục chủ đề! Tôi nghĩ rằng cách này nên làm việc!

Bạn có thể muốn xem những gì WordPress đã làm! Tôi tìm thấy nó trong tệp wp-admin / gồm / update-core.php, dòng 288, hàm update_core


3
Về cơ bản, nhưng thay vì sử dụng curl hoặc file_get, hãy sử dụng API HTTP của WordPress, codex.wordpress.org/HTTP_API
Wyck

Thật tuyệt Wyck, tôi không biết điều đó;)!
kureikain

1
cuối cùng cũng có chút thời gian để bắt đầu reserch về điều này! Đối với phiên bản hiện tại của chủ đề, tôi có thể sử dụng chức năng này codex.wordpress.org/Function_Reference/get_theme_data . Tôi sẽ bắt đầu làm việc với phương pháp bạn chỉ định.
Sisir
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.