web-dev-qa-db-fra.com

Modification des fichiers de base WordPress

Pourquoi?

Parfois, une solution facile pour modifier le comportement de WordPress lui-même ou un plugin pourrait être de modifier les fichiers du plugin ou WordPress directement. Lorsque vous proposez une telle idée, la réponse habituelle est la suivante:

Ne pas pirater le noyau.

Pourquoi est-ce généralement une mauvaise idée de modifier les fichiers core?

Considérer?

Cependant, il arrive parfois que des tâches critiques pour un site soient tout simplement impossibles à faire, de manière agréable, sans modifier les fichiers principaux. Dans une telle situation, de quoi devez-vous être conscient avant de commencer à pirater le noyau?

Comment?

Vous avez envisagé toutes les options, mais la seule solution est le piratage des fichiers de base. Comment devriez-vous vous y prendre? Comment un noyau modifié va-t-il influencer les flux de travail, comme la mise à jour?

21
googletorp

Si vous devezz piratez le noyau, envisagez de le faire de manière à le rendre extensible pour les autres.

Ajouter un crochet d'action

Neuf fois sur dix, vous pouvez faire ce que vous voulez si seulement un appel do_action supplémentaire était inséré dans un fichier spécifique. Dans ce cas, ajoutez l'action, documentez-la et soumettez un correctif via Trac. S'il existe une bonne raison pour votre correctif (c'est-à-dire que vous n'êtes pas le seul à l'utiliser), vous pouvez probablement le faire ajouter à core.

Ensuite, créez un plug-in personnalisé (vous n'avez pas besoin de le publier/le distribuer!) Qui se connecte à ce nouveau hook et exécute la fonction que vous souhaitez.

Refactoriser un fichier core

D'autres fois, vous aurez peut-être simplement besoin d'un morceau de code pour vous comporter différemment. Transmettez une variable par référence, par exemple, ou renvoyez une valeur plutôt que de la renvoyer en écho. Prenez le temps de vous asseoir et de refactoriser le code afin qu'il fasse ce que vous avez besoin de faire ... puis soumettez un correctif via Tracafin que le reste d'entre nous puisse tirer profit de votre travail.


Voyez-vous un thème se développer ici? Le coeur de piratage n'est pas nécessairement un non-non ... juste quelque chose que la plupart des développeurs vontdécourager fortementpour les nouveaux utilisateurs ou les programmeurs novices (si vous nous demandez comment faire quelque chose, nous suggérerons un plug-in à chaque fois avant même d'envisager de suggérer de pirater le noyau).

Le noyau de piratage est la façon dont WordPress se développe et évolue, mais il est dangereux pour quelqu'un qui apprend PHP ou sans expérience de travailler avec des fichiers WP. Commencez avec un plug-in avant de toucher au cœur - si vous cassez un plug-in, vous pouvez le désinstaller rapidement (en le supprimant via FTP si nécessaire) ... mais si vous cassez le cœur, de mauvaises choses peuvent arriver à votre site et potentiellement à votre base de données aussi bien.

Mais si vous vous trouvez dans une situation où un piratage fondamental est inévitable, effectuez le changement. Aussi, publiez votre modification dans un endroit bien en vue (si votre blog est très visible, cela pourrait être suffisant ... mais je suggère Trac car c'est ainsi que les changements de communauté sont intégrés dans la prochaine version). Votre changement pourrait être la solution miracle qui pourrait résoudre les problèmes de cent sites différents ... alors contribuez à la communauté qui vous a aidé à construire votre site.

Si le changement est validé, votre piratage devient partie intégrante de votre cœur et vous n'aurez plus à vous en soucier. Si ce n'est pas le cas, vous avez au moins une documentation détaillée sur la manière de ré-implémenter le hack après la mise à niveau de WP dans 3 mois.

21
EAMann

Ne pas pirater le noyau.

C'est parce que c'est une suggestion pour le premier niveau, les utilisateurs inexpérimentés. Ceux qui piratent le noyau briseraient leur installation, ils ne peuvent pas garantir que leurs modifications persistent, y compris une mise à jour, etc.

Bien sûr, hack core!

Bien sûr, vous pouvez réellement pirater le noyau, par exemple en utilisant un système de gestion de versions comme SVN. Il vous aide à garder vos propres modifications sur le code principal en ligne avec les mises à jour du projet. Cela aide également à créer des correctifs pour Wordpress et à les envoyer au projet.

Le noyau de piratage est en fait en train de faire évoluer Wordpress.

Considérations

Si vous ne souhaitez pas installer un SVN complet et que vous savez toujours quels fichiers vous avez modifiés, vous pouvez utiliser davantage d'outils de bas niveau tels que Diff/Merge (pour gagner: WinMerge ) ou des éditeurs dotés de fonctions de comparaison (p. ex. Notepad ++ avec Compare Plugin ). Sous Linux, vous pouvez facilement installer des utilitaires de ligne de commande faisant la même chose. L'éditeur Geany est livré avec une intégration Nice Shell. .

Je préfère Eclipse PDT pour les travaux difficiles. Mais ce n'est pas pour l'édition rapide ou le piratage.

Je dirais donc que si vous utilisez les bons outils et que vous voulez prendre soin de pirater le cœur, c'est la voie à suivre. Si vous piratez ensemble quelque chose qui reste sur un autre serveur d'utilisateurs Noob (ouais, Wordpress est assez populaire), fournissez simplement un plugin qui peut être jeté facilement s'il casse quelque chose.

3
hakre

Les problèmes sont:

  1. Chaque fois que vous effectuez une mise à jour du noyau (par exemple à cause d'un correctif de sécurité, etc.), vous devrez le mettre à jour manuellement, au lieu d'exécuter le programme de mise à jour automatique.
    Si vous souhaitez le faire, facilitez-vous la vie:
    • marquer chaque modification avec un marqueur commun (.e.g // PATCH START et // PATCH END)
    • utilisez un outil tel que WinMerge pour comparer la source existante avec la nouvelle source et copiez les modifications nécessaires.
    • vous devrez faire attention au cas où la zone de code que vous copiez aurait changé et apporter les modifications appropriées à vos correctifs
    • sachez qu'il s'agit d'un travail "interminable", qui prend du temps facturable, à moins que vous ne puissiez le facturer à nouveau à votre client.
  2. Vous pouvez causer des problèmes d’incompatibilité avec les plug-ins qui s’attendent à ce que le noyau fonctionne d’une certaine manière - cela nécessitera des tests supplémentaires.

Parfois, c'est inévitable à 100%, mais je peux presque toujours trouver un autre moyen de réaliser des choses, ou de modifier les spécifications en raison du coût probable du temps passé à faire cela. C'est juste un cauchemar d'entretien, et beaucoup de gens optent pour le piratage, au lieu de chercher la solution appropriée.

2
Dan Smart