Saya sedang mengerjakan plugin yang idealnya dapat melakukan hal-hal ketika pengguna melakukan sesuatu melalui plugin yang berbeda .
Saya dapat menambahkan pengait khusus di plugin tersebut, tetapi jelas ini tidak berfungsi dengan baik ketika saya ingin mendistribusikan plugin saya. Apakah ada cara yang baik untuk menambahkan kait ke plugin orang lain dari plugin saya sendiri? Apakah satu-satunya solusi nyata untuk meminta penulis untuk menyertakan kait kustom sehingga pengembang lain dapat membangun dari pekerjaan mereka?
Contoh: Saya ingin melakukan sesuatu di plugin saya ketika seseorang me-retweet sebuah artikel. Jika ada pengait khusus pada plugin retweet populer apa pun yang dapat saya gunakan untuk menghubungkan dan mematikannya, itu akan bagus. Tidak ada, jadi saya bisa memodifikasi plugin mereka untuk memasukkannya, tetapi itu hanya berfungsi untuk salinan saya, dan saya tidak ingin mencoba mendistribusikannya kembali.
Apakah kita hanya perlu mencoba dan menjadi pengembang plugin yang lebih baik sehingga kita semua bisa bermain bagus bersama?
Jawaban:
@Ryan Elkins:
Saya kira jawabannya tergantung pada bagaimana impor setiap kasus penggunaan adalah untuk Anda. Dalam beberapa kasus itu akan menjadi sesuatu yang Anda butuhkan cepat-dan-kotor, dalam kasus lain itu mungkin kasus penggunaan yang lebih signifikan. Berikut adalah dua hal yang terlintas dalam pikiran:
Cari Kait Alternatif dalam WordPress Core
Jika itu sesuatu yang cepat dan kotor beberapa kali Anda dapat menggunakan kait hilir lainnya dari inti untuk memodifikasi apa yang Anda butuhkan, atau kait kait hulu dan hilir melalui penggunaan
ob_start()
/ob_end_clean()
(lihat jawaban @Todd Perkins untuk " Berurusan dengan output HTML besar melalui kode plugin " untuk contoh kode.)Untuk melacak kait yang bisa Anda gunakan, periksa plugin Instrument Hooks yang saya posting kemarin untuk membantu Anda menemukan kait yang berpotensi Anda gunakan.
Kirim Patch dengan Kait yang Diinginkan ke Pengembang Plugin
Jika use-case Anda lebih penting bagi Anda atau komunitas, saya sarankan untuk teruskan dan menambahkan hook yang Anda butuhkan ke plugin. Kemudian ujilah dengan baik untuk memastikannya benar-benar menangani kasus penggunaan Anda dan setelah itu Anda dapat mengirimkan tambalan kepada pengembang plugin dengan harapan dia akan menerapkannya. Dengan cara ini Anda membuatnya semudah mungkin pada mereka dengan memberi mereka kode teruji dan Anda bisa mengerjakan sendiri use case untuk memastikan itu benar-benar apa yang Anda butuhkan. Saya tidak dapat memberi tahu Anda seberapa sering saya pikir saya perlu kait tertentu hanya untuk menemukan setelah mencoba menerapkan satu saya membutuhkan sebuah kait tetapi yang berbeda dari yang saya bayangkan sebelumnya.
Jika Anda tidak terbiasa membuat tambalan di sini adalah artikel yang bagus tentang menambal inti WordPress yang sebagian besar berlaku untuk menambal plugin dan bagi yang tidak, semoga akan jelas apa yang harus dilakukan:
Semoga ini membantu?
PS Satu hal yang saya temukan agak mengecewakan dan bahwa alamat pertanyaan Anda adalah persentase plugin yang dirancang hanya untuk pengguna akhir, yaitu yang tidak memiliki kaitannya sendiri. Bayangkan jika WordPress dirancang seperti kebanyakan plugin? Ini akan menjadi tidak fleksibel dan solusi yang sangat niche.
Mungkin hal-hal akan berbeda jika WordPress memiliki kemampuan untuk menginstal secara otomatis plugin yang bergantung pada plugin lain? Karena saya biasanya harus menulis banyak fungsi yang saya butuhkan dari awal karena klien menginginkan sesuatu dengan cara tertentu dan plugin yang tersedia, sementara 90% di sana tidak memungkinkan saya fleksibilitas untuk memperbarui 10% sisanya.
Saya benar-benar berharap mereka yang memimpin komunitas WordPress akan mengidentifikasi cara untuk memastikan bahwa plugin dihargai untuk mengikuti praktik terbaik (seperti menambahkan kait untuk pengembang lain) seperti halnya jawaban yang baik diberikan pada situs StackExchange.
sumber
Sebagai permulaan, ya.
Itu akan menjadi solusi yang bagus.
Anda juga bisa menyalin plugin lain dan hanya menambahkan perubahan apa pun, meskipun itu akan lebih merepotkan.
sumber
Saya pikir Anda menjawab pertanyaan Anda dalam pertanyaan, sehingga menjadi sedikit retoris.
Jelas Anda sedang berbicara tentang sistem yang mirip dengan yang didukung Google dengan Android dan sistem Intent, bahwa aplikasi dapat mempublikasikan tindakan yang dapat dilakukan atas nama aplikasi lain, yang kemudian dapat menghubungkannya dan mengirimkan data kembali dan sebagainya. Secara pribadi saya pikir ini adalah sesuatu yang perlu kita tuju sebagai pengembang yang baik - kita menggunakan WordPress karena sudah mengagumkan, cukup mengagumkan untuk membuat keputusan apakah akan menggunakannya atau mengembangkan produk dalam-rumah yang serupa dengan cukup mudah dalam banyak kasus. Repositori plugin itu sendiri lagi hal yang sama, sebagian besar sebagai pengguna akhir + pengembang - mengapa mengembangkan plugin twitter ketika ada yang sangat bagus.
'Mengapa mengembangkan duplikat' yang sama adalah inti dari pertanyaan Anda di sini. Sistem Android Intent memungkinkan aplikasi untuk memanfaatkan fungsi yang sudah dibuat, dan mengirimkan data di antara mereka, dan ini populer dan sering digunakan, karena didorong sangat berat. Ada sistem serupa yang sudah diterapkan ke WordPress, tetapi sangat jarang digunakan di luar kait yang ada dalam kode inti, yang digunakan banyak.
Akan bermanfaat bagi komunitas jika ada lebih banyak pengait di plugin khusus, tetapi seperti yang Anda katakan, tidak ada cara mudah untuk menambahkan pengait ketika / di mana Anda membutuhkannya.
Dalam hal plugin Twitter yang ingin Anda hubungi, kirimkan email kepada pembuatnya, saya yakin dia akan dengan senang hati menambahkannya untuk Anda.
Jika ada tempat yang Anda pikir akan menjadi tempat yang baik untuk memasang pengait di plugin Anda, lakukan, dan dokumentasikan dengan baik. Jika lebih banyak orang mulai memasukkan kait ke dalam plugin, atau ada dorongan umum untuk melakukannya, itu akan terjadi pada akhirnya.
Jadi untuk menjawab pertanyaan terakhir Anda:
Iya.
Sunting: Saya sudah memikirkan lebih lanjut tentang pertanyaan aktual dan cara terbaik menerapkan kait, tidak bisakah Anda menambahkan tindakan yang akan berjalan jika fungsi tertentu yang Anda coba jalankan dari plugin ada?
sumber
mendefinisikan suatu fungsi:
sekarang Anda dapat mengait pada kail ini:
add_action('my_footer', 'example_function', 1);
# informasi lebih lanjut lihat di posting saya .sumber