Apa cara terbaik untuk memodifikasi plugin? Saya sering ingin membuat perubahan kecil pada satu atau dua fungsi dalam sebuah plugin besar. Ini mudah dilakukan, tetapi saya harus menggunakan komentar untuk menandai perubahan saya dan memodifikasi plugin lagi setelah pembaruan. Idealnya saya ingin meninggalkan plugin sendirian dan melakukan perubahan di tempat lain, seperti yang kami lakukan dengan tema dan tema anak. Bisakah saya membuat plugin yang memerlukan plugin induk dan akan menimpanya?
plugins
customization
Mike Wheaton
sumber
sumber
Jawaban:
IMHO, pendekatan terbaik adalah dengan garpu Plugin untuk mempertahankan perubahan Anda, atau mengirimkan tambalan kepada pengembang Plugin, agar perubahan Anda membuat bagian dari Plugin asli.
Membuat "Plugin Anak" sebenarnya tidak mudah. Konsep "Tema Anak" benar-benar berlaku untuk file templat yang digunakan, lebih dari fungsi Tema (dan pada kenyataannya,
functions.php
file dari kedua Induk dan Anak dimuat, yang memang menyebabkan masalah untukfunctions.php
file kode yang tidak benar di Anak atau Induk Tema).sumber
Cara "benar" jelas tergantung pada plugin. Beberapa plugin lebih mudah diedit daripada yang lain, tetapi sebagian besar plugin sebenarnya dapat dimodifikasi oleh plugin lain.
Misalnya, jika sebuah plugin memiliki fungsi yang terhubung ke WordPress dengan suatu tindakan, maka itu adalah hal yang sederhana bagi Anda untuk membuat plugin lain yang melepaskan kaitan fungsi itu dengan remove_action, dan kemudian menambahkan fungsi pengganti Anda sebagai gantinya. Metode semacam ini akan memungkinkan Anda mengganti fungsi individual dalam plugin dengan versi modifikasi Anda sendiri, tanpa mengubah plugin asli.
Konsep yang sama bekerja dengan filter, jelas.
sumber
Cara terbaik adalah dengan hanya mengkloningnya dan mengubah Nama Plugin di header dan mengubah nama direktori. Dengan cara ini Anda juga bisa menginstal yang asli tetapi tidak diaktifkan sehingga Anda akan tetap mendapatkan peringatan ketika pembaruan dirilis.
sumber
Ini relatif mudah jika plugin berada di bawah kendali sumber Git karena sifat didistribusikan Git, tetapi banyak plugin WordPress (dan semua yang ada di repositori resmi) berada di Subversion. Saya menggunakan cabang vendor dan svn_load_dirs.php jika saya benar - benar perlu memodifikasi plugin, tetapi ini membutuhkan tingkat kenyamanan yang cukup tinggi dengan Subversion.
Jika plugin tidak mengekspos repositori, saya sarankan untuk mengubahnya sendiri menjadi repositori Git dan secara manual menerapkan versi baru.
Pada akhirnya, sistem kontrol versi adalah satu-satunya cara yang waras untuk mengajukan kembali perubahan ke versi hulu baru.
sumber
Saya setuju dengan jawaban Annika Backstrom , tetapi saya ingin membagikan solusi pilihan saya.
Karena sebagian besar plugin berada di bawah svn, saya menggunakan alat yang disebut git-svn untuk membuat cermin git.
Kemudian, saya hanya membuat cabang dan melakukan perubahan di sana.
Ketika plugin diperbarui hulu, saya hanya menarik dari repo svn dan bergabung ke cabang kustom saya.
sumber