it-swarm.asia

WordPress çekirdek dosyalarını değiştirme

Niye ya?

Bazen WordPress'in kendisinin veya bir eklentinin davranışını değiştirmeye yönelik kolay bir düzeltme, eklenti veya WordPress'in dosyalarını doğrudan değiştirmek olabilir. Böyle bir fikir ortaya çıktığında, olağan cevap şöyledir:

Çekirdeği kırma.

Çekirdek dosyalarını değiştirmek neden genel olarak kötü bir fikirdir?

Düşünmek?

Bununla birlikte, bazen, bir site için kritik olabilecek şeyleri, çekirdek dosyalarını değiştirmeden, Güzel bir şekilde yapmak imkansızdır. Böyle bir durumdayken, devam etmeden ve çekirdek kesmeye başlamadan önce neye dikkat etmeniz gerekiyor?

Nasıl?

Tüm seçenekleri düşündünüz, ancak tek çözüm çekirdek dosyaları kırmak. Bunu nasıl yapacaksın? Değişmiş bir çekirdeğe sahip olmak, güncelleme gibi iş akışlarını nasıl etkiler?

21
googletorp

Eğer must hack çekirdek iseniz, bunu başkaları için genişletilebilir kılacak şekilde yapmayı düşünün.

Bir Eylem Kancası Ekleme

Dokuz kere on, belirli bir dosyada sadece fazladan bir do_action araması varsa, istediğinizi yapabilirsiniz. Bu durumda, eylemi ekleyin, belgeleyin veTracile bir yama gönderin. Düzeltme ekiniz için iyi bir neden varsa (yani, onu kullanacak tek kişi siz değilsiniz), muhtemelen çekirdeğe eklemesini sağlayabilirsiniz.

Ardından, bu yeni kancaya bağlanan ve yapmanız gereken işlevi yerine getiren özel bir eklenti oluşturun (yayınlamanız/dağıtmanız gerekmez!).

Refactor bir çekirdek dosya

Diğer zamanlarda, farklı davranabilmek için bir kod parçasına ihtiyacınız olabilir. Örneğin bir değişkeni referansa göre iletin ya da yankı yerine bir değer döndürün. Oturup kodunuzu yeniden düzenlemek için biraz zaman ayırın, böylece yapmanız gerekenleri yapar ... sonraTracile bir düzeltme eki göndeririz, böylece geri kalanınız işinizden faydalanabilir.


Burada gelişen bir tema görüyor musunuz? Çekirdeği kesmek zorunlu olarak hayır-hayır ... sadece çoğu geliştiricinin alacağı bir şey değilçok caydırıcıyeni kullanıcılar veya acemi programcılar için (bize bir şeyi nasıl yapacağımızı soruyorsanız, Size çekirdek kesmek önermek bile düşünmeden önce her zaman bir eklenti öneririz.

Çekirdeği kesmek, WordPress'in gelişmesi ve gelişmesidir, ancak PHP öğrenen veya WP dosyayla çalışan deneyimi olmayan biri için tehlikelidir. Lütfen çekirdeğe dokunmadan önce bir eklentiyle başlayın - eğer bir eklentiyi kırarsanız hızlıca kaldırabilirsiniz (gerekirse FTP üzerinden kaldırarak) ... ancak çekirdeği keserseniz sitenize ve potansiyel olarak sitenize kötü şeyler olabilir veritabanı da.

Ancak, çekirdek kesmenin kaçınılmaz olduğu bir durumdaysanız, değişikliği yapın. Ayrıca, değişikliklerinizi belirgin bir yerde yayınlayın (blogunuz oldukça görünürse, bu yeterli olabilir ... ancak şunu öneririm Trac çünkü topluluk değişiklikleri bir sonraki sürümde bu şekilde ele alınır). Değişikliğiniz yüzlerce farklı sitedeki sorunları çözebilecek sihirli mermi olabilir ... bu yüzden sitenizi oluşturmanıza yardımcı olan topluluğa geri dönün.

Değişim gerçekleşirse, kesmeniz çekirdeğin bir parçası olur ve gelecekte endişelenmenize gerek kalmaz. Olmazsa, en azından 3 ay içinde WP yükseltme işleminden sonra hackin nasıl uygulanacağına ilişkin ayrıntılı belgeleriniz var.

21
EAMann

Çekirdeği kırma.

Çünkü bu birinci seviye, deneyimsiz kullanıcılar için bir öneri. Çekirdekleri kesen çekirdekler kurulumlarını bozacak, değişikliklerinin bir güncellemenin devam etmesini vb. Sağlayamazlar.

Tabii, çekirdek kesmek!

Tabii ki, örneğin SVN gibi bir sürüm yönetim sistemi kullanarak çekirdeği hackleyebilirsiniz. Çekirdek koddaki kendi değişikliklerinizi proje güncellemelerine uygun tutmanıza yardımcı olur. Ayrıca Wordpress için yamalar oluşturmanıza ve projeye göndermenize yardımcı olur.

Çekirdeği kesmek, Wordpress'in gelişmesini sağlamak için etkilidir.

Hususlar

Tam bir SVN yüklemek istemiyorsanız ve hala hangi (bazı) dosyaları değiştirdiğinizi biliyorsanız, Diff/Merge gibi daha düşük seviyeli araçlar kullanabilirsiniz (win: WinMerge ) veya karşılaştırma yetenekleri olan editörler (örneğin Karşılaştırma Eklentisi ile Notepad ++ ). Linux'ta, aynısını yapan komut satırı yardımcı programlarını kolayca yükleyebilirsiniz. Geany editörü , Nice Shell entegrasyonu btw ile birlikte gelir. .

Zor işler için Eclipse PDT'yi tercih ederim. Ama bu hızlı düzenleme veya kesmek için değil.

Bu yüzden, doğru araçları kullanıyorsanız ve çekirdeği kırma konusunda dikkatli olmak istiyorsanız, gitmenin yoludur. Birlikte başka bir Noob kullanıcı sunucusunda bırakılmış bir şeyi hackliyorsanız (evet, Wordpress oldukça popülerdir), sadece bir şeyi kırarsa kolayca dışarı atılabilecek bir eklenti sağlayın.

3
hakre

Sorunlar:

  1. Çekirdeğin bir güncellemesini her yaptığınızda (örneğin, bir güvenlik düzeltmesi vb.), Otomatik güncelleyiciyi çalıştırmak yerine manuel olarak güncellemeniz gerekir.
    Bunu yapmak istiyorsanız, hayatı kendiniz için kolaylaştırın:
    • her değişikliği ortak bir işaretleyici ile işaretleyin (.e.g // PATCH START ve // PATCH END)
    • mevcut kaynağı yeni kaynakla karşılaştırmak için WinMerge gibi bir araç kullanın ve gerekli olduğunda değişiklikleri kopyalayın.
    • kopyaladığınız kod alanının değişmiş olması durumunda dikkat etmeniz ve yamalarınızda uygun değişiklikleri yapmanız gerekecektir.
    • müvekkilinizi isyan edemediğiniz sürece, bunun 'hiç bitmeyen' bir iş olduğunu, faturalandırılabilir zaman alacağını unutmayın.
  2. Çekirdeğin belirli bir şekilde çalışmasını bekleyen eklentilerle uyumsuzluk sorunlarına neden olabilir - bu, ekstra test gerektirecektir

Bazen bu% 100 kaçınılmazdır, ancak neredeyse her zaman bir şeyleri başarmanın başka bir yolunu bulabilirim ya da bunu yapmak için harcanan zamanın muhtemel maliyeti nedeniyle spesifikasyonları değiştirebilirim. Bu sadece bir bakım kabusu ve çoğu insan doğru çözümü aramak yerine çekirdek kesmeye gidiyor.

2
Dan Smart