Eklentilere bağlanma


12

Bir kullanıcı farklı bir eklenti aracılığıyla bir şey yaptığında ideal şeyler yapmak mümkün olacak bir eklenti üzerinde çalışıyorum .

Bu eklentilere özel kancalar ekleyebilirim, ancak açıkçası bu eklentimi dağıtmak istediğimde işe yaramaz. Kendi eklentimden başkalarının eklentilerine kanca eklemenin iyi bir yolu var mı? Yazardan, diğer geliştiricilerin çalışmalarını geliştirebilmeleri için özel kancalar eklemelerini isteyen tek gerçek çözüm mü?

Örnek: Birisi bir makaleyi retweetlediğinde eklentimde bir şey yapmak istiyorum. Popüler retweet eklentisi ne olursa olsun özel bir kanca olsaydı, içeri girip ateş edebilirdim, bu harika olurdu. Yok, bu yüzden eklentisini eklemek için değiştirebilirim, ancak bu sadece kopyam için çalışıyor ve bunu yeniden dağıtmayı denemek istemiyorum.

Hepimizin birlikte iyi oynayabilmesi için daha iyi eklenti geliştiricileri denememiz mi gerekiyor?


1
Harika bir soru!
MikeSchinkel

"Yazardan diğer geliştiricilerin çalışmalarını geliştirebilmeleri için özel kancalar eklemelerini isteyen tek gerçek çözüm mü?" Çoğu durumda, evet. Eklentilerine dolaylı olarak bağlanmayı başarabileceğiniz belirli durumlar vardır, ancak genellikle durum böyle değildir. Eklentilerini WordPress çekirdeği için yazıyormuş gibi yazmalarını söyleyin - gerektiğinde bir filtre / eylem ekleyin.
Viper007Bond

1
İpucu: Diğer eklenti yazarlarının etkileşimde bulunabilmesi için eklentinizin sağladığı kancaları belgeleyin.
hakre

Yanıtlar:


6

@Ryan Elkins:

Sanırım cevap her kullanım senaryosunun size nasıl aktarıldığına bağlıdır. Bazı durumlarda hızlı ve kirli bir şeye ihtiyacınız vardır, bazılarında ise daha önemli bir kullanım durumu olabilir. Akla gelen iki şey:

WordPress Core'da Alternatif Kancalar Arama

'S şey hızlı ve kirli bazı zamanlarda ise ihtiyaç duyduğunuz veya kullanımı aracılığıyla hem memba ve mansap kancalar neyi değiştirmek çekirdekten diğer alt kanca kullanabilirsiniz ob_start()/ ob_end_clean()(bkz @Todd Perkins cevabı "için kod eklentisi yoluyla büyük HTML çıkışı ile başa çıkmak " kod örneği için.)

Kancaları takip etmek için, dün kullanabileceğim Enstrüman Kancaları eklentisine göz atın ve potansiyel olarak kullanabileceğiniz kancaları bulmanıza yardımcı olun.

Eklenti Geliştiricisine İstediğiniz Kancanızla bir Yama gönderin

Kullanım durumunuz sizin veya topluluk için daha önemliyse, devam etmenizi ve eklentiye ihtiyacınız olan kancayı eklemenizi tavsiye ederim. Ardından, kullanım durumunuzu gerçekten ele aldığından emin olmak için iyi test edin, daha sonra eklenti geliştiricisine uygulayacağı ümidiyle bir yama gönderebilirsiniz. Bu şekilde, onlara test edilmiş kod vererek onları mümkün olduğunca kolaylaştırırsınız ve gerçekten ihtiyacınız olan şey olduğundan emin olmak için kullanım senaryosunu kendiniz halledersiniz. Belirli bir kancaya ne kadar sıklıkta ihtiyacım olduğunu düşündüğümü söyleyemem ancak bir kanca takmaya çalıştıktan sonra bir kancaya ihtiyacım vardı ama ilk düşündüğümden farklıydı.

Bir yama oluşturmaya alışkın değilseniz, yama eklentileri için en çok uygulanan WordPress çekirdeği yama ile ilgili iyi bir makale var ve bunu yapmamak için ne yapacağınızı umuyoruz:

Bu yardımcı olur umarım?

PS Bir şey biraz hayal kırıklığı bulmak ve soru adresleri sadece son kullanıcılar için tasarlanmış, yani kendi kanca var eklentilerin yüzdesidir. WordPress'in çoğu eklenti gibi tasarlanmış olup olmadığını düşünün? Esnek olmayan ve çok niş bir çözüm olacaktır.

WordPress, diğer eklentilerin bağlı olduğu eklentileri otomatik olarak yükleme yeteneğine sahip olsaydı, işler farklı olurdu? Olduğu gibi tipik olarak sıfırdan ihtiyaç duyduğum birçok işlevselliği yazmak zorundayım çünkü müşteriler işleri belirli bir şekilde ve eklentileri istiyor,% 90'ı ise kalan% 10'u güncelleme esnekliğine izin vermiyor.

WordPress topluluğuna liderlik edenlerin, en iyi uygulamaların (diğer geliştiriciler için kanca ekleme gibi) aşağıdaki gibi bir StackExchange sitesinde ödüllendirildiği gibi ödüllendirilmelerini sağlamak için bir yol tanımlamasını gerçekten isterdim.


2

Sadece deneme gerekiyor mu ve karşı daha iyi bu yüzden hepimiz Play Nice birlikte can olduğunu geliştiriciler eklentisi olmak?

Yeni başlayanlar için, evet.

Yazardan, diğer geliştiricilerin çalışmalarını geliştirebilmeleri için özel kancalar eklemelerini isteyen tek gerçek çözüm mü?

Bu iyi bir çözüm olurdu.

Ayrıca diğer eklentiyi kopyalayabilir ve herhangi bir değişiklik ekleyebilirsiniz, ancak bu daha fazla güçlük olabilir.


2

Sanırım soruya sorunuzu cevapladınız, böylece biraz retorik hale geliyor.

Açıkçası, Google'ın Android ve Niyet sistemi ile teşvik ettiği sisteme benzer bir sistemden bahsediyorsunuz, bir uygulamanın diğer uygulamalar adına yapabileceği eylemleri yayınlayabildiği ve daha sonra bu sistemlere bağlanıp verileri geri aktarabileceği ileri. Şahsen, iyi geliştiriciler olarak yönelmemiz gereken bir şey olduğunu düşünüyorum - WordPress kullanıyoruz, çünkü çoğu durumda onu kullanmanız veya benzer bir şirket içi ürün geliştirip geliştirmeme konusunda karar vermek için zaten harika, harika. Eklenti havuzunun kendisi, çoğunlukla son kullanıcı + geliştirici ile aynı şeydir - neden mükemmel bir tane olduğunda bir twitter eklentisi geliştirin.

Aynı 'niçin kopyaları geliştirin' de burada sorunuzun en önemli noktası. Android Niyet sistemi, uygulamaların önceden oluşturulmuş işlevleri kullanmasına ve aralarında veri aktarmasına izin verir ve bu çok popüler olduğu için popülerdir ve sıklıkla kullanılır. WordPress'e zaten uygulanmış benzer bir sistem var, ancak çekirdek kodda bulunan ve çok kullanılan kancaların ötesinde çok nadiren kullanılıyor.

Özel eklentilerde daha fazla kanca mevcut olsaydı topluluğa fayda sağlayacaktır, ancak dediğin gibi, ihtiyacınız olduğunda / yerde kanca eklemenin kolay bir yolu yoktur.

Bağlamak istediğiniz Twitter eklentisi açısından, yazara bir e-posta gönderin, eminim ki bunları sizin için eklemekten mutluluk duyacaktır.

Eklentinize bir kanca koymak için iyi bir yer olduğunu düşündüğünüz bir yer varsa, yapın ve iyi bir şekilde belgelendirin. Daha fazla kişi kancaları eklentilere koymaya başlarsa veya bunu yapmak için genel bir itme varsa, sonunda olur.

Bu yüzden, şu son sorunuzu cevaplamak için:

Hepimizin birlikte iyi oynayabilmesi için daha iyi eklenti geliştiricileri denememiz mi gerekiyor?

Evet.


Düzenleme: Gerçek soru ve kancaları uygulamak için en iyi yolu hakkında biraz düşündüm, eklentiyi çalıştırmaya çalıştığınız belirli bir işlev mevcut olsaydı çalışacak bir eylem ekleyemez misiniz?


Bu işe yarardı, ancak farklı bir eklentinin işlevi aynı ada sahip olsaydı ne olurdu?
Arlen Beiler

Hata! Belki olmaz, çünkü neyin retweetlendiğini ve kimin tarafından bilindiğini bilmek zorundasın. İşlevin kontrol edilmesi, bir çalışma zamanı çözümdür, ihtiyacımız olan, söz konusu işlev çağrıldığında veya veri döndürdüğünde çalışan gerçek zamanlı bir çözümdür.
Arlen Beiler

@Arlen - Belirli bir işlevin orada olup olmadığını kontrol eden kendi işlevinizi oluşturduğunuzu varsayalım. 'Plugins_loaded' öğesinden sonra çalıştırılır ve varsa özellikleri etkinleştiren bir boolean ayarlar. Değişmeyen kod bağlıdır son derece, ama neden işe yaramaz göremiyorum?
kimse

0

bir işlev tanımlayın:

function my_footer() {
    do_action('my_footer');
}

şimdi bu kanca kanca olabilir: add_action('my_footer', 'example_function', 1);# daha fazla bilgi benim yazı görmek .


not => şimdi, bu kendi => bu. Doğru?
Arlen Beiler

Özel kancaların nasıl ekleneceğini anlıyorum - soru, başkasının eklentisini, ideal olarak eklentilerinin doğrudan değiştirilmesini gerektirmeyen bir şekilde nasıl takacağınızdır.
Ryan Elkins

@Arlen: çok teşekkürler, benim kötü ingilizce için üzgünüm @Ryan: eklenti bir kanca yok zaman mümkün değil; ancak yazar eklentisinde bunu istediğinde işlevi veya sınıfı değiştirmeyi kontrol edebilirsiniz. Ancak aktif eklentileri istemek ve diğer eklenti olarak WP'de daha önce kanca yapmak ve işlevini değiştirmek mümkündür.
Ağustos'ta
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.