Pembaruan untuk plugin pribadi?


117

Jika saya menulis plugin pribadi, apakah ada cara untuk menggunakan mekanisme pembaruan otomatis WordPress untuk memperbaruinya?

Saya ingin merangkum fungsionalitas, tetapi khusus untuk 5 atau lebih blog saya sendiri, jadi itu bukan kandidat yang baik untuk sumber daya plugin publik. Tapi saya suka mekanisme yang mudah diperbarui.

Apakah ada cara untuk melakukan ini?


Saya percaya ini telah dibahas sebagai opsi yang dapat difilter pada milis wp-hacker pada hari itu. Itu tidak pernah diselesaikan, IIRC. Saya pikir diskusi yang relevan ada di utas ini: lists.automattic.com/pipermail/wp-hackers/2009-February/… ... tapi saya bisa saja salah.
ZaMoose

Jika Anda tidak ingin menggulung solusi Anda sendiri, Anda dapat menggunakan kernl.us untuk pembaruan plugin yang dihosting.
Jack Slingerland

Jawaban:


48

Sepertinya kode yang berlaku dalam 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);

Secara khusus memeriksa api.wordpress.org. Secara teknis, mungkin saja untuk memasukkan kunci $to_sendke dalam untuk mendelegasikan cek, tetapi setahu saya itu bukan fitur yang didukung.

Jika Anda menghubungkan ke set_site_transient_update_pluginsAnda bisa menambahkan detail paket Anda sendiri ke dalam variabel ini. Sepertinya nilai-nilai itu akan dipercaya ketika Anda menjalankan plugin updater. Lihat wp-admin/update.phpdan wp-admin/includes/class-wp-upgrader.php. Mengingat kode dalam dua fungsi ini, saya pikir mungkin untuk menyuntikkan server pembaruan Anda sendiri, Anda hanya perlu melihat bagaimana detail paket diformat dan cocok dengan itu.


42

Plugin ini melakukannya untuk Anda:

Pembaruan Otomatis Untuk Plugin Pribadi Dan Komersial

Sejak dahulu kala, hanya plugin yang diinangi di direktori plugin WordPress.org resmi yang telah mendukung pembaruan otomatis. Sekarang, saya telah menulis perpustakaan PHP yang dapat Anda gunakan untuk menambahkan kemampuan pembaruan otomatis ke plugin apa pun. Plugin publik, pribadi, dan komersial - semuanya sekarang dapat menikmati manfaat pemberitahuan pembaruan otomatis dan peningkatan satu klik.

Repositori GitHub


2
Anda mungkin juga tertarik untuk mengelola plugin di sisi Anda ... mungkin dengan paket wp-update-server, ditulis oleh penulis yang sama;) github.com/YahnisElsts/wp-update-server Dengan menggunakan server ini, Anda dapat mengamankan plugin Anda, karena dijelaskan di sini: w-shadow.com/blog/2013/03/19/…
SimonSimCity

bagaimana cara menonaktifkan pemeriksa pembaruan default wordpress pada plugin gratis?
csandreas1

Meskipun situs web itu terlihat usang, proyek ini sangat aktif didukung, dan ia bekerja dengan repositori Bitbucket / Github pribadi juga! Lihat repo Github mereka untuk info lebih lanjut tentang berbagai integrasi yang tersedia github.com/YahnisElsts/plugin-update-checker
Mr. Me

10

Jika Anda suka gratis ... dan ingin menggunakan sesuatu seperti GitHub, GitLab, atau BitBucket, ini adalah kualitas yang baik dan plugin yang didukung untuk menanganinya (mendukung pribadi dan perusahaan):

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


1
Wow! Sepertinya proyek yang didukung dan matang!
Armstrongest

1
Mengandalkan plugin lain sepertinya bukan solusi yang sangat bersih.
kontur

2
@kontur sangat benar, tetapi seolah-olah ini adalah open source, dan terus diperbarui, dapat digunakan sebagai kerangka kerja, atau hanya sebagai contoh kode untuk membangun milik Anda sendiri.
sMyles


1

Anda mungkin ingin memeriksa plugin WordPress Development Kit . Baru-baru ini saya memigrasi sistem pembaruan milik saya ke plugin ini. Plugin sekarang berfungsi sebagai prosesor back-end untuk pembaruan plugin premium saya.

Ini serupa dalam pengaturan dengan solusi yang disediakan oleh agileapricot di atas. Ini akan menginstal sebagai plugin standar di situs WordPress. Anda meng-host file .zip premium Anda dan plugins.json dalam direktori produksi atau pra-rilis di server Anda (ditentukan dalam pengaturan untuk plugin).

Plugin ini juga memungkinkan Anda untuk membuat daftar versi plugin dan bahkan dapat menyediakan unduhan untuk file di halaman publik, yang dilindungi kata sandi, atau langganan yang dilindungi. Anda dapat melihat contoh daftar versi di halaman di sini .

Saya telah menggunakan plugin selama berbulan-bulan untuk mempublikasikan log perubahan untuk add-ons premium saya, daftar versi saat ini, dan daftar unduhan untuk pemegang Langganan Premier saya. Sekarang, dengan versi 0.7.01, ia berfungsi sebagai tujuan permintaan untuk pembaruan WordPress inline.

Semoga sebagian dari Anda merasa bermanfaat.


1

Jika Anda menginginkan solusi yang dihosting yang tidak perlu Anda kelola, lihat Kernl ( https://kernl.us ). Ini adalah layanan yang menyediakan infrastruktur untuk memperbarui plugin dan membuatnya mudah untuk diintegrasikan ke dalam plugin Anda sendiri.


Tampaknya ini layak.
kontur

-1

Anda dapat menggunakan plugin komersial ini: http://autohosted.com/ tanpa batasan dan memiliki beberapa fitur lain yang mungkin Anda perlukan:

  • Tidak ada biaya bulanan
  • Penggunaan tidak terbatas
  • Integrasi yang mudah dengan Tema dan Plugin
  • Otentikasi berdasarkan domain, kunci, & peran

1
Tertutup untuk pendaftaran baru ...
Cliff P
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.