web-dev-qa-db-fra.com

Quelles sont les raisons pour lesquelles vous voulez que vous deviez pirater les fichiers de base WordPress?

Souvent, une solution rapide à un problème, can peut être résolue en piratant le noyau WordPress, ce qui change le code qui est WordPress lui-même.

C'est un chemin très dangereux à prendre! Ne le fais pas, jamais!


Vous pouvez toujours changer le fonctionnement de WordPress en utilisant des plugins. Cela peut parfois être assez fastidieux et difficile, mais le travail supplémentaire l'emporte toujours sur les problèmes que vous rencontrez en modifiant le noyau de WordPress lui-même.

Certains diraient qu'il peut y avoir des situations où le piratage du noyau est la seule solution, mais si vous êtes ici pour poser des questions, vous n'êtes certainement pas dans cette situation .

Cette question se veut une introduction à un ouvrage collectif sur les raisons pour lesquelles vous ne devriez jamais pirater le noyau WordPress, que nous pouvons utiliser comme référence. Si vous avez quelque chose à ajouter, n'hésitez pas à l'ajouter en tant que question.

8
googletorp

La meilleure raison de ne pas pirater core est que quoi que vous fassiez, il devrait être retravaillé comme patch pour core!

Évidemment, TOUT votre code ne ferait pas du tout un bon patch, ou du moins le ferait rarement. Au lieu de cela, vous devez déterminer quel crochet (action ou filtre) manque dans le noyau et vous permettrait de faire tout ce que vous devez faire sans piratage du noyau. Nous n'avons pas besoin de pirater le noyau quand il y a des filtres/actions adéquats, donc trouver le point d'ancrage manquant éliminera toujours le besoin de pirater le noyau.

Cela peut souvent nécessiter des efforts difficiles pour résoudre les problèmes et des problèmes difficiles, mais le plus souvent, ce qui ne se passe pas, c’est que vous découvrez que il existe déjà un crochet pour résoudre votre problème , vous n’avez donc pas à pirater le cœur!

Dans les rares cas où il n'y a pas de hook, il vous suffit de poster sur trac pour expliquer pourquoi votre hook doit exister. Si votre nouveau hook est validé, alors vous avez un hack temporaire d'une ligne vers le noyau qui n'aura pas à vous inquiéter à la prochaine mise à jour.

Même si vous ne savez pas ce que vous voulez faire dans le Core Trac (il faut être convaincant pour le faire), vous avez au moins réduit au minimum votre piratage: une ligne de code pour votre action/filtre. Lorsque vous mettez à jour WP, vous avez remplacé tout le code que vous avez inséré dans le noyau par une seule ligne à mettre à jour et votre plugin peut rester identique!

6
jerclarke

Je crois que cela, directement depuis WordPress Codex , dit tout:

Photo: Don't Hack WordPress Core; Or the Kitten Get's it!

:)

3
MikeSchinkel

Il y a aussi le fait qu'une fois que WordPress est mis à niveau vers la dernière version, toutes les modifications apportées aux fichiers de base sont écrasées.

3
Tom J Nowell

Cet avertissement est bien ancien, bien avant l'époque des systèmes de contrôle de version décentralisés tels que Git . À cette époque, pour pirater le noyau, vous deviez conserver vos modifications sous la forme d’un ensemble de correctifs. Parce que certains développeurs (principalement des développeurs inexpérimentés manipulant Wordpress) ne faisaient pas de correctifs pour suivre leurs modifications, ils ont rencontré un problème: ils ont finalement eu du mal à mettre à jour Worpdress vers la nouvelle version et le dicton est né.

L'avertissement était plus ou moins une référence culturelle au "Chaque fois que tu te masturbes ... Dieu tue un chaton" légende de l'image et était évidemment aussi amusant. Cependant, l’analogie entre "piratage wordpress core" et "masturbating" a été évoquée. Cela a probablement conduit à une certaine popularité.

Bien sûr, le cœur de piratage est une épée à deux faces et je suppose que c'est pourquoi vous avez demandé.

Tout d’abord, c’est parfaitement valide, possible et réalisable dans le passé et le présent pour pirater le noyau. Dans le passé, avec les ensembles de patchs et encore plus facile aujourd'hui en utilisant git et le repo git de Wordpress disponible au public sur Github .

Au lieu de dire aux utilisateurs (qui ne comprennent peut-être même pas de quoi il s'agit) qu'ils sont idiots en faisant des blagues à leur sujet, il est préférable de les encourager et de les éduquer.

De plus, et c’est l’un des aspects les plus sombres de l’histoire de Wordpress, la communauté Wordpress ne fait pas la promotion ici. Même si cela encourage en quelque sorte les utilisateurs à apporter des modifications en amont (c'est-à-dire dans le référentiel de code d'origine), ce qui est une bonne chose, Wordpress ne l'a pas fait pour les bibliothèques qu'ils ont intégrées dans leur arborescence à partir de sources en amont. Donc, gardez ces paroles à la légère, ce n’est rien que les développeurs Wordpress lead et core ont suivi pour le code qui leur a été repris par d’autres.

Donc, si vous jugez le dicton en regardant les développeurs, c'est une blague, c'est une référence culturelle vulgaire.

La meilleure suggestion que je puisse vous donner est si vous êtes un développeur et que vous souhaitez apporter des modifications au noyau, faites-le. Faites-le comme il vous plait vous pas les autres. Wordpress est un logiciel libre pour une raison et vous devriez en être fier et ce que vous en faites. Publiquement ou en privé. Si vous cherchez des moyens de rendre cela plus réalisable, créez un flux de travail autour de celui-ci, comme vous le feriez également si vous réalisiez un autre type de travail de développement.

1
hakre

Il y a eu 3 fois et demi que j'ai eu besoin de pirater le noyau pour résoudre un problème.

1) Était un correctif de bogue. Je l'ai signalé comme un bug dans Trac avec un correctif diff. La fonctionnalité est en train d'être retravaillée dans la prochaine version de WP, invalidant le bogue. Jusque-là, je peux facilement appliquer le correctif que j'ai créé sur les installations actuelles/nouvelles.

2) Il fallait ajouter une journalisation très détaillée pour tenter de dépister un problème très spécifique rencontré par un utilisateur. Pas une situation de tous les jours, et certainement pas liée à la fonctionnalité.

3a) Je voulais ajouter un champ supplémentaire aux catégories dans WP 2.8.5. Les crochets intégrés pour ce faire ne fonctionnaient pas correctement (problème connu) et je pense que ce problème particulier a été résolu dans l'arborescence 2.9. À la fin de la journée, la mise en œuvre était défectueuse et nous avons repensé la fonctionnalité pour qu'elle fonctionne d'une manière différente qui n'exigeait pas de modification principale.

3b) Je pensais que je devais modifier le noyau pour modifier les liens de modération des commentaires, mais pendant que je cherchais, j'ai trouvé des points d'ancrage que je ne connaissais pas et que j'ai pu implémenter la fonctionnalité en tant que plugin.

1
gabrielk