Modification des fichiers de base WordPress

20

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 de WordPress directement. Lorsque vous proposez une telle idée, la réponse habituelle est la suivante:

  

Ne piratez pas le coeur.

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

Considérer?

Parfois, cependant, il est tout simplement impossible de réaliser des tâches critiques pour un site, 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 principaux. Comment devriez-vous vous y prendre? Comment un noyau modifié va-t-il influencer les workflows, comme la mise à jour?

    
posée googletorp 09.09.2010 - 09:08

3 réponses

19

Si vous devez pirater le noyau, envisagez de le faire de manière à le rendre extensible aux autres.

Ajouter un crochet d'action

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

Créez ensuite un plug-in personnalisé (vous n'avez pas à le publier / le distribuer!) qui se connecte à ce nouveau hook et remplit toutes les fonctions dont vous avez besoin.

Refactoriser un fichier de base

D'autres fois, vous aurez peut-être 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 envoyez un correctif via Trac pour 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 vont strongment décourager les nouveaux utilisateurs ou les programmeurs débutants (si vous nous demandez comment faire Quelque chose, nous allons suggérer un plug-in à chaque fois avant même d'envisager de suggérer de pirater le noyau).

Le coeur de piratage est la façon dont WordPress se développe et évolue, mais c'est dangereux pour quelqu'un qui apprend tout simplement PHP ou qui n'a aucune expérience du travail avec les 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. En outre, publiez votre modification dans un endroit bien visible (si votre blog est très visible, cela pourrait être suffisant ... mais je suggère de 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 les modifications sont validées, votre piratage devient alors 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 façon de ré-implémenter le hack après la mise à niveau de WP dans 3 mois.

    
réponse donnée EAMann 09.09.2010 - 16:27
2

Les problèmes sont les suivants:

  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:
    • marquez chaque modification avec un marqueur commun (par exemple, // PATCH START et // PATCH END )
    • utilisez un outil tel que WinMerge pour comparer la source existante avec la nouvelle source et pour copier les modifications, le cas échéant.
    • vous devrez faire attention au cas où la zone de code que vous copiez a 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 recharger à nouveau.
  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, cela est inévitable à 100%, mais je peux presque toujours trouver un autre moyen d’atteindre des objectifs, ou de modifier les spécifications en raison du coût probable du temps consacré à ces tâches. Ce n’est qu’un cauchemar d’entretien, et de nombreuses personnes optent pour le piratage informatique au lieu de chercher la solution appropriée.

    
réponse donnée Dan Smart 09.09.2010 - 10:20
2
  

Ne piratez pas le coeur.

Eh bien, 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, bidouillez le noyau!

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 a pour effet 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 d'éditeurs disposant de fonctionnalités de comparaison (par exemple, Notepad ++ avec le plugin de comparaison ). Sous Linux, vous pouvez facilement installer des utilitaires de ligne de commande faisant la même chose. L ' éditeur Geany est fourni avec une belle intégration de shell. .

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

Donc, je dirais que si vous utilisez les bons outils et que vous voulez faire attention, le piratage du coeur est la voie à suivre. Si vous piratez ensemble quelque chose qui reste sur un autre serveur d'utilisateurs Noob (et oui, Wordpress est assez populaire), fournissez simplement un plugin qui peut être jeté facilement s'il casse quelque chose.

    
réponse donnée hakre 09.09.2010 - 11:13

Lire d'autres questions sur les étiquettes