it-swarm.asia

Özel bir eklenti için güncellemeler?

Ö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ı?

112
artlung

Geçerli kod wp-includes/update.php, wp_update_plugins() konumunda görünüyor.

$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, onay vermek için $to_send içindeki bir anahtarı geçmek mümkün olacaktı, ancak benim için desteklenen bir özellik değil.

set_site_transient_update_plugins'ye bağlanırsanız, 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.php ve 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.

45
Annika Backstrom

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 özellikleri eklemek için kullanabileceğiniz bir PHP kütüphanesi yazdım. Genel, özel ve ticari eklentiler - hepsi artık otomatik güncelleme bildirimlerinin ve tek tıklamayla yükseltmelerin avantajlarından yararlanabilir.

GitHub deposu

40
agileapricot

Ö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

9
sMyles

Ben de aynı şeyi arıyorum. Yardımcı olabileceğini düşündüğüm birkaç link:

Bunlardan ilki, bazı bilgiler ve yükseltmeler API'sına işaretçiler. İkincisi, aslında API'den nasıl bilgi isteyeceğinizi gösteren bir kod pasajıdır.

8
Dougal Campbell

WordPress Geliştirme Seti eklentisini kontrol etmek 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 çözüme benzer. 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 ayrıca eklenti sürümlerini listelemenizi sağlar ve herkese açık, şifre korumalı veya abonelik korumalı sayfalardaki dosyalar için bir indirme bile sağlayabilir. Buradaki sayfa sürümü 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
Lance Cleveland

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

1