Quelles sont les raisons pour lesquelles vous ne devriez pas pirater les fichiers principaux de WordPress?


9

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

C'est une route très dangereuse à prendre! Ne fais jamais ça!


Vous pouvez toujours changer le fonctionnement de WordPress, en utilisant des plugins. Cela peut parfois être assez ennuyeux et difficile, mais le travail supplémentaire l'emporte toujours sur les problèmes que vous rencontrez en changeant le noyau 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 est destinée à être une introduction à un travail 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 comme question.


@googletorp : Mec rock!
MikeSchinkel

Je ne suis pas d'accord pour dire qu'il ne faut jamais le faire, la question d'origine a des réponses qui indiquent les raisons pour lesquelles, donc je donne à cette question un downvote. De plus, je ne suis pas d'accord non plus que si vous êtes ici pour poser des questions, vous n'êtes certainement pas dans cette situation . C'est aussi un site pour les experts , donc les questions sur le hacking core ne doivent pas être censurées. Mais nous devrions peut-être en discuter davantage sur le méta-site .
Jan Fabry

Réponses:


5

La meilleure raison de ne pas pirater le noyau est que tout ce que vous faites devrait être retravaillé en tant que patch pour le noyau!

De toute évidence, TOUT votre code ne ferait pas du tout un bon correctif, ou du moins il le ferait rarement. Au lieu de cela, vous devez déterminer quel crochet (action ou filtre) manque dans le noyau qui vous permettrait de faire tout ce que vous devez faire sans pirater le noyau. Nous n'avons pas besoin de pirater le cœur quand il y a des filtres / actions adéquats, donc trouver le crochet manquant supprimera toujours le besoin de pirater le cœur.

Cela peut souvent nécessiter une résolution de problèmes difficile et un travail de jambes délicat, mais le plus souvent, ce n'est pas ce qui se passe, c'est que vous découvrez qu'il existe déjà un crochet pour résoudre votre problème , vous n'avez donc pas à pirater le cœur!

Dans le scénario rare où il n'y a vraiment pas de crochet, il vous suffit de poster sur trac expliquant pourquoi votre crochet doit exister. Si vous obtenez votre nouveau crochet engagé, vous avez un hack 1 ligne temporaire à cœur qui n'aura pas à vous inquiéter lors de la prochaine mise à jour.

Même si vous aspirez à faire des choses dans Core trac (il faut convaincre pour que les choses soient engagées), vous avez au moins fait bouillir votre core hack au minimum possible: 1 ligne de code pour votre action / filtre. Lorsque vous mettez à jour WP, vous avez maintenant remplacé tout le code que vous avez inséré dans le noyau par une ligne qui doit être mise à jour, et votre plugin peut rester le même!


@ Jeremy Clark - Bon!
MikeSchinkel

3

Il y a aussi le fait qu'une fois que vous avez mis à niveau wordpress vers la dernière version, toutes vos modifications apportées aux fichiers principaux sont écrasées


AFAIK, c'était la raison d'origine, non pas techniquement (vous pouvez organiser cela d'une manière qui ne pose pas de problème pour modifier votre installation) mais parce que les utilisateurs se plaignent alors dans les forums de support Wordpress que la mise à jour a cassé leur site. Comme la mise à niveau posait souvent déjà des problèmes d'elle-même, certains utilisateurs voulaient s'assurer que le nombre de problèmes "créés par l'utilisateur" soit au moins bas et hors de l'équation.
hakre


1

Cet avertissement est bien ancien, bien avant l'époque des systèmes de contrôle de version décentralisés comme Git . À l'époque, pour pirater le cœur, vous deviez conserver vos modifications sous forme d'un ensemble de correctifs. Parce que certains (pour la plupart des développeurs inexpérimentés jouant avec Wordpress) n'ont pas fait de correctifs pour suivre leurs modifications, ils ont rencontré un problème: à la fin, ils ont eu des problèmes avec la mise à jour de Worpdress vers la nouvelle version et le dicton est né.

L'avertissement était plus ou moins une référence culturelle à la légende de l'image "Chaque fois que vous vous masturbez ... Dieu tue un chaton" et visiblement comme amusant. Cependant, l'analogie entre "hacking wordpress core" et "masturbating" a été évoquée. Cela a probablement conduit à une certaine popularité.

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

Tout d'abord, il est parfaitement valide, possible et réalisable dans le passé et le présent de pirater le cœur. Dans le passé avec des jeux de patchs et encore plus facile aujourd'hui en utilisant git et le repo git de Wordpress disponible publiquement sur Github .

Au lieu de dire aux utilisateurs (qui ne comprennent même pas de quoi il s'agit) qu'ils sont stupides en faisant des blagues à leur sujet, il vaut mieux les encourager et les éduquer.

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

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

La meilleure suggestion que je puisse donner est que si vous êtes développeur et que vous souhaitez apporter des modifications au noyau, faites-le. Faites-le de la manière qui vous plaît pas aux autres. Wordpress est un logiciel libre pour une raison et vous devriez en être fier et ce que vous en faites. En public ou en privé. Si vous cherchez des moyens de rendre cela plus réalisable, créez un flux de travail autour de lui comme vous le feriez également si vous effectuez un autre type de travail de développement.


0

Il y a eu 3 fois et demi 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 patch diff. La fonctionnalité est déjà retravaillée dans la prochaine version de WP, ce qui invalide essentiellement le bogue. Jusque-là, je peux facilement appliquer le correctif que j'ai créé sur les installations actuelles / nouvelles.

2) devait ajouter une journalisation très détaillée pour essayer de retrouver un problème très spécifique qu'un utilisateur rencontrait. Pas une situation quotidienne, 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 crois que ce problème particulier a été résolu dans l'arborescence 2.9. À la fin de la journée, l'implémentation était défectueuse et nous avons repensé la fonctionnalité pour qu'elle fonctionne d'une manière différente sans nécessiter de modification de base.

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


Je dirais que la principale raison pour pirater les fichiers de base est de les faire fonctionner comme j'en ai besoin, pas comme les autres pensent que j'en aurais besoin. Cela peut être temporaire (comme dans votre exemple de débogage), mais cela peut également se faire par une version complète ou même dans les versions principales en raison de problèmes qui ne sont pas résolus dans le package wordpress d'origine (qu'il s'agisse de wordpress.org ou pré-emballé par quelqu'un autre).
hakre
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.