Apa beberapa alasan mengapa Anda tidak perlu meretas file inti WordPress?


9

Seringkali solusi cepat untuk suatu masalah, dapat diselesaikan dengan meretas inti WordPress, yaitu mengubah kode yaitu WordPress itu sendiri.

Ini jalan yang sangat berbahaya untuk ditempuh! Jangan pernah melakukannya!


Anda selalu dapat mengubah cara kerja WordPress, dengan menggunakan plugin. Ini kadang-kadang bisa agak melelahkan dan sulit, tetapi kerja ekstra selalu melebihi masalah yang Anda dapatkan dengan mengubah inti WordPress itu sendiri.

Beberapa akan mengatakan bahwa mungkin ada situasi di mana peretasan inti adalah satu-satunya solusi, tetapi jika Anda di sini mengajukan pertanyaan, Anda pasti tidak dalam situasi itu .

Pertanyaan ini, dimaksudkan sebagai pengantar untuk karya kolektif mengapa Anda tidak boleh meretas inti WordPress, yang dapat kita gunakan sebagai referensi. Jika Anda memiliki sesuatu untuk ditambahkan, jangan ragu untuk menambahkannya sebagai pertanyaan.


@googletorp : Kamu cewek dude!
MikeSchinkel

Saya tidak setuju bahwa seseorang seharusnya tidak pernah melakukannya, pertanyaan awal memiliki beberapa jawaban yang mengarah pada alasan mengapa, jadi saya memberikan pertanyaan ini downvote. Selain itu, saya juga tidak setuju bahwa jika Anda di sini mengajukan pertanyaan, Anda pasti tidak dalam situasi itu . Ini adalah situs untuk para ahli juga, jadi pertanyaan tentang inti peretasan seharusnya tidak disensor. Tapi mungkin kita harus membahasnya lebih lanjut di situs meta .
Jan Fabry

Jawaban:


5

Alasan terbaik untuk tidak meretas inti adalah bahwa apa pun yang Anda lakukan harus dikerjakan ulang sebagai tambalan untuk inti sebagai gantinya!

Jelas SEMUA kode Anda tidak akan membuat tambalan yang baik sama sekali, atau setidaknya jarang. Alih-alih, Anda perlu mencari tahu apa yang tidak ada pada kail (tindakan atau filter) yang memungkinkan Anda melakukan apa pun yang perlu Anda lakukan tanpa meretas inti. Kita tidak perlu meretas inti ketika ada filter / tindakan yang memadai, jadi menemukan apa yang hilang akan selalu menghilangkan kebutuhan untuk meretas inti.

Hal ini sering membutuhkan penyelesaian yang sulit dan kerja keras yang rumit, tetapi lebih sering daripada tidak yang terjadi adalah Anda menemukan bahwa sudah ada kait untuk menyelesaikan masalah Anda , jadi Anda tidak perlu meretas inti!

Dalam skenario langka di mana sebenarnya tidak ada kait, Anda hanya perlu memposting di trac menjelaskan mengapa kait Anda perlu ada. Jika Anda mendapatkan komitmen baru Anda maka Anda memiliki hack 1-line sementara untuk inti yang tidak perlu khawatir tentang kali Anda memperbarui.

Sekalipun Anda payah dalam menyelesaikan berbagai hal di Core trac (perlu meyakinkan untuk melakukan sesuatu), Anda setidaknya merebus hack inti Anda seminimal mungkin: 1 baris kode untuk tindakan / filter Anda. Ketika Anda memperbarui WP Anda sekarang telah mengganti semua kode yang Anda dorong ke dalam inti dengan satu baris yang perlu diperbarui, dan plugin Anda dapat tetap sama!


@Jeremy Clark - Bagus!
MikeSchinkel

3

Ada juga fakta bahwa sekali Anda meng-upgrade wordpress ke versi terbaru semua perubahan Anda ke file inti ditimpa


AFAIK ini adalah alasan asli, bukan secara teknis (Anda dapat mengaturnya dengan cara yang tidak menimbulkan masalah untuk mengedit instalasi Anda) tetapi karena pengguna kemudian mengeluh di forum dukungan Wordpress bahwa pembaruan benar-benar menghancurkan situs mereka. Karena peningkatan sering menimbulkan masalah sendiri, beberapa pengguna ingin memastikan setidaknya mendapatkan jumlah masalah "buatan sendiri" yang rendah dan keluar dari persamaan.
hakre


1

Peringatan ini sudah sangat tua, jauh sebelum masa sistem kontrol versi terdesentralisasi seperti Git . Kembali pada masa itu, untuk meretas inti, Anda perlu menyimpan perubahan Anda sebagai satu set tambalan Anda sendiri. Karena beberapa (kebanyakan pengembang yang tidak berpengalaman mengutak-atik Wordpress) tidak melakukan tambalan untuk melacak perubahan mereka, mereka mengalami masalah: Pada akhirnya mereka memiliki masalah dengan memperbarui Worpdress ke versi baru dan pepatah lahir.

Peringatan itu kurang lebih merupakan rujukan sisi budaya pada judul gambar "Setiap kali Anda masturbasi ... Tuhan membunuh anak kucing" dan jelas dimaksudkan sebagai kesenangan. Namun, analogi antara "peretasan inti wordpress" dan "masturbasi" diangkat. Ini mungkin telah menyebabkan beberapa popularitas.

Tentu inti peretasan adalah pedang dua sisi dan saya kira inilah sebabnya Anda bertanya.

Pertama-tama itu sangat valid, mungkin dan layak baik di masa lalu dan sekarang untuk diretas inti. Di masa lalu dengan patch-set dan bahkan lebih mudah hari ini dengan menggunakan git dan repo git dari Wordpress tersedia untuk umum di Github .

Daripada memberi tahu pengguna (yang mungkin bahkan tidak mengerti tentang apa ini) mereka bodoh dengan membuat lelucon tentang mereka, lebih baik mendorong mereka dan mendidik mereka.

Juga, dan ini adalah salah satu sisi yang lebih gelap dalam sejarah Wordpress, komunitas Wordpress tidak mempromosikan di sini dengan baik. Meskipun ini semacam mendorong pengguna untuk membawa perubahan ke hulu (itu berarti ke dalam repositori kode asli) yang merupakan hal yang baik secara normal, Wordpress tidak melakukan untuk perpustakaan yang telah mereka ambil ke pohon mereka dari sumber hulu. Jadi, pertahankan ucapan ini dengan enteng, bukan apa-apa yang diikuti oleh pemimpin dan pengembang inti Wordpress untuk kode yang telah mereka ambil dari orang lain juga.

Jadi jika Anda menilai perkataan dengan melihat tangan pengembang, itu hanya lelucon, itu hanya referensi budaya yang vulgar.

Saran terbaik yang bisa saya berikan adalah jika Anda seorang pengembang dan Anda ingin membuat perubahan pada inti, lakukanlah. Lakukan dengan cara yang menyenangkan Anda, bukan orang lain. Wordpress adalah Perangkat Lunak Bebas karena suatu alasan dan Anda harus bangga akan hal itu dan apa yang Anda lakukan dengannya. Di depan umum atau secara pribadi. Jika Anda mencari cara untuk membuat ini lebih layak, buat alur kerja di sekitarnya seperti halnya Anda juga jika Anda melakukan pekerjaan pengembangan jenis lain.


0

Ada 3 setengah kali saya perlu meretas inti untuk menyelesaikan masalah.

1) Apakah perbaikan bug. Saya melaporkannya sebagai bug di Trac bersama dengan patch yang berbeda. Fungsionalitas sedang bekerja kembali di versi WP berikutnya, pada dasarnya membatalkan bug. Sampai saat itu saya dapat dengan mudah menerapkan tambalan yang saya buat pada pemasangan saat ini / baru.

2) Adalah untuk menambahkan pencatatan yang sangat rinci untuk mencoba dan melacak masalah yang sangat spesifik yang ditemui pengguna. Bukan situasi setiap hari, dan tentu saja tidak terkait fungsi.

3a) Saya ingin menambahkan bidang tambahan ke Kategori di WP 2.8.5. Kait bawaan untuk melakukan ini tidak berfungsi sebagaimana mestinya (masalah yang diketahui), dan saya percaya masalah khusus ini diperbaiki di pohon 2.9. Pada akhirnya, implementasinya cacat dan kami merancang ulang fitur untuk bekerja dengan cara yang berbeda yang tidak memerlukan modifikasi inti.

3b) Saya pikir saya perlu memodifikasi inti untuk mengubah tautan moderasi komentar, tetapi ketika saya menggali sekitar saya menemukan beberapa kait yang sebelumnya saya tidak tahu dan dapat mengimplementasikan fitur sebagai plugin.


Saya akan mengatakan alasan nomor satu untuk meretas file inti adalah untuk membuatnya berfungsi seperti saya membutuhkannya, tidak seperti orang lain berpikir saya mungkin membutuhkannya. Itu bisa sementara (seperti dalam contoh debugging Anda) tetapi ini bisa juga per versi lengkap atau bahkan di seluruh versi utama karena masalah yang tidak diperbaiki dalam paket wordpress asli (baik itu wordpress.org atau dikemas sebelumnya oleh seseorang lain).
hakre
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.