Bağımlılıkla bir eklenti oluşturma


21

Başka bir eklentinin işlevselliğini genişletmeye çalışıyorum. Orijinal eklenti farklı bir şekilde kullanmak için bir dizi içine veri almak gerekiyor. (Bu durumda, WPMUDev Kategoriler ve Listeler eklentileri). Kodeks'de bir şey var mı? Başka bir eklenti işlevini kullanabilen bir eklenti nasıl oluşturabilirim? Bunları genişletebilir ve üst düğüm işlevlerini oluşturabilir miyim? Bu eklentilerin sınıfları mı yoksa sadece düz fonksiyonları mı kullandığından emin değilim.

Ben sadece bir kenar çubuğu widget (bir form seçenek öğesinde) eklenti veri almaya çalışıyorum, ama sonunda bu özel kısa kodları kullanarak da içerik alanı için kullanacağız. Şimdilik başlamak için sadece bir yere ihtiyacım var.


4
FWIW bu konu hakkında bir bilet var core.trac.wordpress.org/ticket/22316
Norcross

Yanıtlar:


22

Evet, başka bir eklenti genişleten bir eklenti oluşturmak mümkündür. İşte bu konuda nasıl olabileceğinize dair birkaç fikir:

  1. Bir eklenti , WordPress çekirdeğinde olduğu gibi kendi eylemini ve filtre kancalarını ( do_actionve apply_filterişlevlerini kullanarak ) ayarlayabilir . Hedeflediğiniz eklenti bunu yaparsa, işlevselliği değiştirmek için bu kancaları kullanabilirsiniz.

  2. Bir eklenti nesne yönelimli bir yapı kullanıyorsa, sınıfları genişletebilir ve orijinal eklentiyi oluşturabilirsiniz.

  3. Veritabanında saklanan verileri orijinal eklenti tarafından okuyabilir ve eklenti kodunuzda kullanabilirsiniz.

  4. Eklentinin etkin ve yüklü olduğunu kontrol ettikten sonra, istediğiniz orijinal eklentiden herhangi bir işlevi çağırabilirsiniz (aşağıya bakın). Sadece işlevin döndürülen değerin yanı sıra sahip olabileceği etkileri de unutmayın.

Orijinal eklentinin etkinleştirilip etkinleştirilmediğini kontrol etmeniz gerekir. Bu is_plugin_activeişlevi kullanabilirsiniz ; ancak bu yalnızca yönetici sayfalarında çalışır. Alternatif olarak, kullanabilirsiniz function_existsveya class_existsorijinal eklenti gelen belirli bir işlev veya sınıf çalışmakta olduğunu söylerdim ki, mevcut olup olmadığını kontrol etmek.

Orijinal eklenti her güncellendiğinde, eklentinizle çakışabilecek yeni bir şey aramak için eklentinizi yeni sürümle test etmeniz gerektiğini unutmayın.

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.