it-swarm-id.com

Cara yang Benar untuk Memodifikasi Plugin

Apa cara terbaik untuk memodifikasi plugin? Saya sering ingin membuat perubahan kecil ke 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 kita lakukan dengan tema dan tema anak. Bisakah saya membuat plugin yang memerlukan plugin induk dan akan menimpanya?

14
Mike Wheaton

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 template yang digunakan, lebih dari fungsi Tema (dan pada kenyataannya, file functions.php dari Induk dan Anak dimuat, yang tidak menyebabkan masalah bagi file functions.php kode yang tidak benar dalam Tema Anak atau Orang Tua).

7
Chip Bennett

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 dikaitkan dengan 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. 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.

7
Otto

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.

<?php
/*
Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
License: A "Slug" license name e.g. GPL2
*/
?>
4
Chris_O

Saya setuju dengan jawaban Annika Backstrom , tapi saya ingin membagikan solusi pilihan saya.

Karena kebanyakan plugin berada di bawah svn, saya menggunakan alat yang disebut git-svn untuk membuat mirror 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.

2
scribu

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 vendor branch dan svn_load_dirs.php jika I really 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.

2
Annika Backstrom