Eklentiyi Değiştirmenin Doğru Yolu


15

Bir eklentiyi değiştirmenin en iyi yolu nedir? Büyük bir eklenti içinde bir veya iki işlevde sık sık küçük değişiklikler yapmak istiyorum. Bu kolayca yapılır, ancak değişikliklerimi işaretlemek ve bir güncellemeden sonra eklentiyi tekrar değiştirmek için yorumları kullanmam gerekir. İdeal olarak, eklentiyi yalnız bırakmak ve değişikliklerimi ve çocuk temalarını yaptığımız gibi başka yerlerde yapmak istiyorum. Üst eklentiyi gerektiren ve geçersiz kılan bir eklenti yapabilir miyim?


1
Üzerinde kontrol "değiştirmeden uzatın" . Bunun pratik olarak daha iyi bir çözüm olduğunu düşünüyorum. Ayrıntılar için bu bağlantıyı kontrol edin - Bir WordPress Eklentisini Özelleştirmenin Doğru Yolu
Eugine Joseph

Yanıtlar:


7

IMHO, en iyi yaklaşım, değişikliklerinizi korumak için Eklentiyi çatallamak veya değişikliklerinizi orijinal Eklentinin bir parçası haline getirmek için Eklenti geliştiricisine yamalar göndermektir.

"Çocuk Eklentisi" oluşturmak gerçekten kolay değil. "Çocuk Teması" kavramı gerçekten uygulanır şablon dosyalarından Tema fonksiyonları moreso, alışması (ve aslında, functions.phpAna ve Çocuk hem dosya, hangi yüklenen almak yapar yanlış kodlanmış için sorunlara neden functions.phpÇocuk ya da Ebeveyn ya dosyaların Tema).


Yaptığım değişikliklerin türleri siteye özgüdür ve bu nedenle yamaları göndermenin veya göndermenin uygun olacağını düşünmüyorum. Eklentilerde daha genel iyileştirmeler için bunları kesinlikle aklımızda tutacağım.
Mike Wheaton

Ancak çatallama temelde zaten yaptığınız şeydir . Temel olarak, seçenekleriniz şunlardır: çatal veya yama. @Chris_O, çatallı Eklentinizi korurken, yukarı yönlü otomatik güncellemeleri alabilmeniz için iyi bir yol sağlar.
Chip Bennett

7

"Doğru" yol açıkça eklentiye bağlıdır. Bazı eklentileri düzenlemek diğerlerinden daha kolaydır, ancak çoğu eklenti diğer eklentiler tarafından değiştirilebilir.

Örneğin, bir eklentinin bir eylemle WordPress'e bağlı bir işlevi varsa, remove_action ile bu işlevi çıkaran başka bir eklenti yapmanız ve yerine değiştirme işlevinizi eklemeniz basit bir konudur. Bu tür bir yöntem, orijinal eklentiyi değiştirmeden eklentilerdeki tek tek işlevleri kendi değiştirilmiş sürümlerinizle değiştirmenize izin verir.

Aynı kavram açıkçası filtrelerle de çalışıyor.


4

En iyi yol, onu klonlamak ve başlıktaki Eklenti Adını değiştirmek ve dizin adını değiştirmek olacaktır. Bu şekilde orijinali de yüklediniz, ancak etkinleştirmediniz, böylece güncellemeler yayınlandığında uyarı almaya devam edersiniz.

<?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
*/
?>

Bu yine de değişiklikleri bulmak için eklentinin yeni sürümlerinden geçmeyi gerektirir (bir sürüm karşılaştırma aracının yardımcı olacağını varsayalım) ve daha sonra bu değişiklikleri özel eklentime kopyalamayı gerektirir. Eklentiyi indirebilir ve değişiklikleri özel sürümümle birleştirmek için SVN kullanabilirim.
Mike Wheaton

2
Eklentiler sayfasındaki geliştirme günlüğü bağlantısında diff dosyasına doğrudan bir bağlantı vardır. Örneğin, burada W3 Toplam Önbellek
Chris_O

3

Eklenti Git'in dağıtılmış doğası nedeniyle Git kaynak kontrolü altındaysa, ancak birçok WordPress eklentisi (ve resmi depodaki tüm) Subversion'da ise bu nispeten kolaydır. Gerçekten bir eklentiyi değiştirmeniz gerekirse satıcı dalları ve svn_load_dirs.php kullanıyorum , ancak bu Subversion ile oldukça yüksek bir konfor seviyesi gerektiriyor.

Eklenti herhangi bir depo açmazsa, kendiniz bir Git havuzuna dönüştürmenizi ve manuel olarak yeni sürümler uygulamayı öneririm.

Sonunda, sürüm kontrol sistemleri, değişiklikleri yeni yukarı akış sürümlerine yeniden uygulamanın tek akılcı yoludur.


3

Annika Backstrom'un cevabına katılıyorum , ancak tercih ettiğim çözümü paylaşmak istiyorum.

Çoğu eklenti svn altında olduğundan, bir git aynası yapmak için git-svn adlı bir araç kullanıyorum.

Sonra, sadece bir şube yapıyorum ve değişikliklerimi orada yapıyorum.

Eklenti yukarı doğru güncellendiğinde, sadece svn deposundan çekiyorum ve özel şubemle birleşiyorum.

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.