Quali sono alcuni dei motivi per cui non dovresti hackerare i file core di WordPress?


9

Spesso una soluzione rapida a un problema può essere risolta hackerando il core di WordPress, che sta cambiando il codice che è WordPress stesso.

Questa è una strada molto pericolosa da prendere! Non farlo mai!


Puoi sempre cambiare il funzionamento di WordPress, usando i plugin. Questo a volte può essere piuttosto noioso e difficile, ma il lavoro extra supera sempre i problemi che si presentano cambiando il core di WordPress stesso.

Alcuni direbbero che ci possono essere situazioni in cui l'hacking del core è l'unica soluzione, ma se sei qui a fare domande, sicuramente non ti trovi in ​​quella situazione .

Questa domanda, vuole essere un'introduzione a un lavoro collettivo sul perché non dovresti mai hackerare il core di WordPress, che possiamo usare come riferimento. Se hai qualcosa da aggiungere, sentiti libero di aggiungerlo come domanda.


@googletorp : Amico rock!
MikeSchinkel,

Non sono d'accordo sul fatto che non si dovrebbe mai farlo, la domanda originale ha alcune risposte che indicano i motivi per cui, quindi do a questa domanda un voto negativo. Inoltre, non sono d'accordo sul fatto che se sei qui a porre domande, sicuramente non ti trovi in ​​quella situazione . Questo è un sito anche per esperti , quindi le domande sull'hacking core non dovrebbero essere censurate. Ma forse dovremmo discuterne ulteriormente sul meta sito .
Jan Fabry,

Risposte:


5

Il miglior motivo per non hackerare core è che qualsiasi cosa tu stia facendo dovrebbe essere rielaborata come patch per core!

Ovviamente TUTTO il tuo codice non sarebbe affatto una buona patch, o almeno raramente. Invece devi capire quale hook (azione o filtro) manca nel core che ti permetterebbe di fare qualunque cosa tu debba fare senza hackerare core. Non abbiamo bisogno di hackerare core quando ci sono filtri / azioni adeguati, quindi trovare qual è l'hook mancante rimuoverà sempre la necessità di hackerare core.

Questo può spesso richiedere un duro problem solving e ingannevoli legwork, ma più spesso non succede che scopri che esiste già un gancio per risolvere il tuo problema , quindi non devi hackerare core!

Nel raro scenario in cui non c'è davvero un hook, devi solo pubblicare su trac spiegando perché il tuo hook deve esistere. Se ottieni il tuo nuovo hook impegnato, hai un hack temporaneo di 1 riga su core che non dovrà preoccuparsi al prossimo aggiornamento.

Anche se ti piace fare cose nel Core trac (ci vuole un po 'di convincere per impegnarti), hai almeno bollito il tuo core hack al minimo possibile: 1 riga di codice per la tua azione / filtro. Quando aggiorni WP ora hai sostituito tutto il codice inserito nel core con una riga che deve essere aggiornata e il tuo plugin può rimanere lo stesso!


@Jeremy Clark - Bravo!
MikeSchinkel,

3

C'è anche il fatto che una volta aggiornato wordpress all'ultima versione tutte le modifiche ai file core vengono sovrascritte


AFAIK questo era il motivo originale, non tecnicamente (puoi organizzarlo in modo che non costituisca un problema per modificare la tua installazione) ma a causa degli utenti che si lamentano nei forum di supporto di Wordpress che l'aggiornamento ha interrotto il loro sito. Poiché l'aggiornamento spesso ha già creato problemi da solo, alcuni utenti hanno voluto assicurarsi che il numero dei problemi "fatti da sé" fosse basso e fuori dall'equazione.
Hacre,


1

Questo avviso è molto vecchio, molto prima dei tempi dei sistemi di controllo versione decentralizzato come Git . A quei tempi, per hackerare il core, dovevi mantenere le tue modifiche come un set di patch. Poiché alcuni (per lo più sviluppatori inesperti che armeggiano con Wordpress) non hanno fatto patch per tenere traccia delle loro modifiche, hanno riscontrato un problema: alla fine hanno avuto problemi con l'aggiornamento di Worpdress alla nuova versione e il detto è nato.

L'avvertimento era più o meno un riferimento culturale alla didascalia "Ogni volta che ti masturbi ... Dio uccide un gattino" e ovviamente intendeva come divertimento. Tuttavia, è stata sollevata l'analogia tra "hacking wordpress core" e "masturbating" . Questo probabilmente ha portato ad una certa popolarità.

Sicuramente il nucleo di hacking è un'arma a due facce e immagino sia per questo che l'hai chiesto.

Innanzitutto è perfettamente valido, possibile e fattibile sia nel passato che nel presente per hackerare il core. In passato con patch-set e ancora più facile oggi usando git e il repository git di Wordpress disponibili pubblicamente su Github .

Invece di dire agli utenti (che potrebbero anche non capire di cosa si tratta) sono stupidi facendo battute su di loro, è meglio incoraggiarli ed educarli.

Inoltre, e questo è uno dei lati più oscuri della storia di Wordpress, la comunità di Wordpress non promuove bene qui. Anche se in qualche modo incoraggia gli utenti a apportare modifiche a monte (ciò significa nel repository di codice originale) che è una buona cosa normalmente, Wordpress non lo ha fatto per le librerie che hanno acquisito nel loro albero da fonti a monte. Quindi mantieni questi detti alla leggera, non è niente che lead Wordpress e gli sviluppatori principali hanno seguito per il codice che sono stati rilevati anche da altri.

Quindi, se giudichi il detto guardando le mani degli sviluppatori, è puramente uno scherzo, è solo un volgare riferimento culturale.

Il miglior suggerimento che posso dare è se sei uno sviluppatore e vuoi apportare modifiche al core, fallo. Fallo nel modo in cui non ti piace gli altri. Wordpress è un software gratuito per una ragione e dovresti esserne orgoglioso e cosa ne fai tu stesso. Pubblicamente o privatamente. Se stai cercando modi per renderlo più fattibile, crea un flusso di lavoro attorno ad esso come faresti anche se stai facendo un altro tipo di lavoro di sviluppo.


0

Ci sono state 3 volte e mezza che ho dovuto hackerare core per risolvere un problema.

1) È stato corretto un bug. L'ho segnalato come bug in Trac insieme a una patch diff. La funzionalità è già stata rielaborata nella prossima versione di WP, sostanzialmente invalidando il bug. Fino ad allora posso facilmente applicare la patch che ho creato su installazioni correnti / nuove.

2) È stato quello di aggiungere una registrazione molto dettagliata per cercare di rintracciare un problema molto specifico che un utente stava riscontrando. Non una situazione di tutti i giorni, e certamente non relativa alla funzionalità.

3a) Volevo aggiungere un campo aggiuntivo alle categorie in WP 2.8.5. Gli hook incorporati per farlo non funzionavano correttamente (problema noto) e credo che questo particolare problema sia stato risolto nell'albero 2.9. Alla fine, l'implementazione è stata imperfetta e abbiamo riprogettato la funzionalità per funzionare in un modo diverso che non richiedeva una modifica di base.

3b) Pensavo di dover modificare core per cambiare i link di moderazione dei commenti, ma mentre cercavo in giro ho trovato alcuni hook che in precedenza non conoscevo ed ero in grado di implementare la funzionalità come plug-in.


Direi che la ragione numero uno per hackerare i file core è farli funzionare come se avessi bisogno di loro, non come gli altri pensano che potrei averne bisogno. Questo può essere temporaneamente (come nel tuo esempio di debug) ma può essere anche per una versione completa o anche tra le versioni principali a causa di problemi che non vengono risolti nel pacchetto wordpress originale (sia esso wordpress.org o preconfezionato da qualcuno altro).
Hakre,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.