Tek tek eklentiler için güncelleme bildirimini devre dışı bırak


49

Belirli eklentiler için güncelleme bildirimlerini devre dışı bırakmanın bir yolu var mı?

Eklenti geliştiricisi olarak, kişisel siteme test için svn trunk sürümünü kullanarak bazı eklentilerim var, ancak aynı eklentiler eklenti sitesinden edinilebilir. Bu durumlarda WP, en son yayınlanan ve en son yayınlanan versiyon olarak kabul edilir ve sürekli güncellemelerin mevcut olduğu konusunda beni uyarmaya çalışır.

Diğer eklentiler hakkındaki güncellemeler için bildirimleri hala görmek istiyorum, ancak Updates (2)başlıktaki bildirimi sürekli olarak görmezden gelmek çok rahatsız edici !


Basitçe eklenti dosyasını açın ve sürüm numarasını 9.9.9 gibi bir şeye değiştirin
Bainternet

Maalesef @Bainternet, ancak site bir svn-checkout olduğundan ve eklenti svn:external, eklenti geliştirme koduna yapılan bir referanstan geldiğinden dolayı bu çok garip olurdu . Bir üretim sunucusunda yerel olarak değiştirilmiş bir dosyaya sahip olmak bir seçenek değildir. Hameedullah'ın filtresi , sitenin kod deposuna kaydedildiği için çalışıyor.
Caleb

Evet, svn üzerinde çalışan site hakkındaki bölümü özledim
Bainternet

Ayrıca WordPress.org'daki Websiteguy'un Güncelleştirme Yöneticisi eklentisini kullanmanız da yeterli.
matthew

Yanıtlar:


67

Örneğin, Wordpress'in akismet için güncelleme bildirimleri göstermesini istemiyorsanız, şöyle yapardınız:

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

1
Bunu sonuna yerleştirdim ./wp-config.php, eklenti dosya yolunu değiştirdim ve işi yaptım.
Caleb

6
Mümkünse, onları farklı bir eklenti dosyasına koyabilirsiniz. Bana göre bunu wp-config.php içine koymak iyi bir fikir değil.
Hameedullah Khan,

1
Fonksiyonumun temaya bağlı olmasını istemiyorum ve bir eklenti eklemek, sahip olduğum eklentiyi hack etmek kadar kesmek gibi görünüyor. Neden siteye özel yapılandırma hack'leri koymak için wp-config.php'nin uygun olmadığını düşündüğünüzü açıklayabilir misiniz?
Caleb

Functions.php de benim için iyi çalıştı çok iyi bir çözüm. Sadece başka bir unset () ekleyerek listeye daha fazla eklenti eklemek kolaydır ... İyi bir ipucu Hameedullah ..
Lars

2
@Caleb ile aynı açıklamalara sahip olanlar için wp-content klasöründe yeni bir klasör mu-pluginsoluşturun : ve içine bırakacağınız küçük bir eklenti oluşturun. Yukarıda da belirtildiği gibi bazılarında wp-config.phpeklenmesi gerekenler kesinlikle yanlıştır.
Charles

30

Hameedullah Khan'ın cevabı PHP uyarısı atar. Bu eklentinin cevabını ayarlamadan önce bunun bir nesne olduğundan emin olmak için kontrol etmek için bu cümleyi dahil edin.

'Uyarı: Nesnenin olmayan özelliğini değiştirme girişimi'

Uyarıları önlemek için bunu deneyin (eklenti dosyasının kodunu kendisi):

// remove update notice for forked plugins
function remove_update_notifications($value) {

    if ( isset( $value ) && is_object( $value ) ) {
        unset( $value->response[ plugin_basename(__FILE__) ] );
    }

    return $value;
}
add_filter( 'site_transient_update_plugins', 'remove_update_notifications' );

Bunu asıl eklentiye koymak hoşuma gidiyor. Bir eklenti için yalnızca güncellemeleri devre dışı bıraktığım için, kodu düzenlediğimden veya değiştirdiğimden ve bir güncelleme üzerindeki düzenlemelerimi kaybetmek istemediğimden, eklentiyi zaten düzenlemiştim ve bu nedenle daha fazla düzenlemeyi umursamıyorum. İşlevlerimin dosyasını biraz daha temiz tutuyor. Ancak isterseniz onu işlev dosyasına koyabilir ve bu yöntemin bir yararı, bu eklenti için başka bir belirsiz satır ekleyerek güncellemelerden birden fazla eklentiyi kaldırabilmenizdir (code for functions.php):

// remove update notice for forked plugins
function remove_update_notifications( $value ) {

    if ( isset( $value ) && is_object( $value ) ) {
        unset( $value->response[ 'hello.php' ] );
        unset( $value->response[ 'akismet/akismet.php' ] );
    }

    return $value;
}
add_filter( 'site_transient_update_plugins', 'remove_update_notifications' );

Bunun için teşekkürler. Bu kodu doğrudan eklentiler içinde kullanmakta sorun yaşadım, bir eklenti olduğunda tamam görünüyordu, ancak başkalarıyla yaptığım anda (diff func names) tüm eklentiler için bildirimleri kaybettim ve wp-repo eklentileri için "ayrıntıları görüntüle" bağlantısını da kaybettim. kayboldu. Çeklerinizi kullanmak, ancak temanın işlevlerine yerleştirmek.php, diğer eklentiler için güncelleme bildirimlerini engellemeden daha güvenilirdi. Son olarak, eklentide bulunmamak, çalışması için aktif olması için bu eklentiye ihtiyaç duymama avantajına sahiptir. Bu kodla bir eklentiyi devre dışı bırakmak açıkça güncelleme bildirimleri sunacaktır.
Philip Ingram

2

Kodla Tüm Güncelleme Bildirimlerini Devre Dışı Bırak

function remove_core_updates(){
        global $wp_version;return(object) array('last_checked'=> time(),'version_checked'=> $wp_version,);
    }
    add_filter('pre_site_transient_update_core','remove_core_updates');
    add_filter('pre_site_transient_update_plugins','remove_core_updates');
    add_filter('pre_site_transient_update_themes','remove_core_updates');

Kod, WordPress çekirdeği, eklentiler ve temalar için güncelleme bildirimlerini devre dışı bırakacaktır.


"bireysel eklentiler" anahtardır
Gangesh

@ Gangesh, bence belirli bir eklentinin bildirimlerini devre dışı bırakmak istiyor
Süper Model
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.