Özel bir eklenti için güncellemeler?


117

Özel bir eklenti yazarsam, güncellemek için WordPress otomatik güncelleme mekanizmasını kullanmanın bir yolu var mı?

İşlevselliği enkapsüle almak istiyorum, ancak kendi 5 bloguma özel, bu yüzden kamu eklentileri kaynağı için iyi bir aday değil. Ancak kolay güncelleme mekanizmasını çok seviyorum.

Bunu yapmanın bir yolu var mı?


Bunun, wp hacker'ların posta listesindeki filtreleyen bir seçenek olarak tartışıldığına inanıyorum. Asla çözülmedi, IIRC. Ben düşünüyorum alakalı tartışma bu thread oldu: lists.automattic.com/pipermail/wp-hackers/2009-February/... ... ama yanlış olabilir.
ZaMoose

Kendi çözümünüzü almak istemiyorsanız , barındırılan eklenti güncellemeleri için kernl.us dosyasını kullanabilirsiniz .
Jack Slingerland

Yanıtlar:


48

Uygulanabilir kod olduğu gibi görünüyor 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);

Özellikle api.wordpress.org adresini kontrol eder. Teknik olarak konuşursak $to_send, kontrol yetkisi vermek için içeriden bir anahtar geçmek mümkün olacaktı , ancak benim için desteklenen bir özellik değil.

Bağlanırsanız set_site_transient_update_plugins, bu değişkene kendi paket detaylarınızı ekleyebilirsiniz. Eklenti güncelleyiciyi çalıştırdığınızda bu değerlere güvenilecek gibi görünüyor. Bkz wp-admin/update.phpve wp-admin/includes/class-wp-upgrader.php. Bu iki işlevdeki kod göz önüne alındığında, kendi güncelleme sunucunuzu enjekte etmenin mümkün olacağını düşünüyorum, yalnızca paket ayrıntılarının nasıl biçimlendirildiğine ve bununla nasıl eşleştirildiğine bakmanız gerekir.


42

Bu eklenti sizin için yapar:

Özel ve Ticari Eklentiler İçin Otomatik Güncellemeler

Çok eski zamanlardan beri, yalnızca resmi WordPress.org eklenti dizininde barındırılan eklentiler otomatik güncellemeleri desteklemektedir. Şimdi, herhangi bir eklentiye otomatik güncelleme yetenekleri eklemek için kullanabileceğiniz bir PHP kütüphanesi yazdım. Genel, özel ve ticari eklentiler - tümü otomatik güncelleme bildirimleri ve tek tıklamayla yükseltmelerin avantajlarından yararlanabilir.

GitHub deposu


2
Ayrıca eklentilerinizi yanınızda yönetmek de ilginizi çekebilir ... belki wp-update-serveraynı yazar tarafından yazılmış paketle ;) github.com/YahnisElsts/wp-update-server Bu sunucuyu kullanarak eklentilerinizi güvence altına alabilirsiniz. Burada açıklanan: w-shadow.com/blog/2013/03/19/…
SimonSimCity

ücretsiz eklentilerde wordpress varsayılan güncelleme denetleyicisini nasıl devre dışı bırakabilirim?
csandreas1

Bu web sitesi güncel görünmese de, proje aktif olarak destekleniyor ve özel Bitbucket / Github depolarıyla da çalışıyor! Mevcut farklı entegrasyonlar hakkında daha fazla bilgi için Github repo'larına bakın. Github.com/YahnisElsts/plugin-update-checker
Mr. Me

10

Özgür olmayı seviyorsanız ... ve GitHub, GitLab veya BitBucket gibi bir şey kullanmak istiyorsanız, bu kullanım için kaliteli ve desteklenen bir eklentidir (özel ve kurumsal destekler):

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


1
Vaov! İyi desteklenmiş ve olgun bir projeye benziyor!
Armstrongest

1
Başka bir eklentiye güvenmek çok temiz bir çözüm gibi görünmüyor.
kontur

2
@kontur çok doğru, ama sanki bu açık kaynak ve sürekli güncelleniyor gibi olmak, bir çerçeve olarak ya da sadece kendinizinkini oluşturmak için bir kod örneği olarak kullanılabilir.
sMyles


1

WordPress Geliştirme Seti eklentisini incelemek isteyebilirsiniz . Kısa bir süre önce tescilli güncelleme sistemimi bu eklentiye taşıdım. Eklenti şimdi premium eklenti güncellemelerim için arka uç işlemci olarak hizmet veriyor.

Bu kurulumda yukarıdaki agileapricot tarafından sağlanan çözeltiye benzer. Bir WordPress sitesinde standart bir eklenti olarak yüklenir. Premium .zip dosyalarınızı ve plugins.json dosyasını sunucunuzdaki üretim veya yayın öncesi dizinlerinde (eklenti ayarlarında belirtilmiştir) barındırırsınız.

Eklenti, eklenti sürümlerini listelemenizi sağlar ve ayrıca herkese açık, şifre korumalı veya abonelik korumalı sayfalardaki dosyalar için bir indirme bile sağlayabilir. Sayfa içi versiyon listesinin bir örneğini burada görebilirsiniz .

Eklentilerimdeki değişiklik günlüğünü, geçerli sürümler listesini ve Premier Abonelik sahiplerimin indirme listelerini yayınlamak için eklentiyi aylardır kullanıyorum. Şimdi, sürüm 0.7.01 ile satır içi WordPress güncellemeleri için sorgu hedefi olarak çalışıyor.

Umarım bazılarınız yararlı buluyor.


1

Yönetmeniz gerekmeyen barındırılan bir çözüm istiyorsanız, Kernl ( https://kernl.us ) sayfasını inceleyin. Eklentileri güncellemek için altyapı sağlayan ve kendi eklentilerinize entegre etmeyi kolaylaştıran bir hizmettir.


Bu uygulanabilir görünüyor.
kontur

-1

Bu ticari eklentiyi kullanabilirsiniz: http://autohosted.com/ sınırlama yok ve ihtiyaç duyabileceğiniz birkaç başka özellik daha var:

  • Aylık ücret yok
  • Sınırsız kullanım
  • Temalar ve Eklentilerle kolay entegrasyon
  • Alan, anahtar ve rollere göre kimlik doğrulama

1
Yeni kayıtlara kapandı ...
Cliff P
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.