Est-il nécessaire dans n'importe quelle circonstance de modifier Wordpress autrement qu'en écrivant des plugins et des thèmes?

StackOverflow https://stackoverflow.com/questions/203543

  •  03-07-2019
  •  | 
  •  

Question

J'ai récemment dû travailler sur un projet dans lequel le développeur précédent avait modifié le répertoire wp-admin. Cela me semble une mauvaise idée, car Wordpress est constamment mis à jour. Est-ce que je ne suis pas à ce niveau d'expertise avec la modification de Wordpress?

Était-ce utile?

La solution

Étant une source ouverte, je pense que les logiciels tels que WordPress peuvent être modifiés et étendus à tout moment.

Modifier ou ne pas modifier est un choix entre des compromis. Les nouvelles fonctionnalités peuvent être encapsulées sous forme de modules, ce qui peut peut-être rendre leur fonctionnalité moins intégrée que souhaité. Cependant, l'intégration complète des modifications peut entraver la mise à jour facile du logiciel à mesure que de nouvelles versions sont publiées.

Il faut que quelqu'un connaisse très bien le logiciel pour le modifier directement, mais ce n'est pas nécessairement une mauvaise idée.

Par ailleurs, je pense que modifier WordPress est presque une nécessité, surtout si vous voulez qu’il ait une architecture décente ou qu’il soit réellement sécurisé (ok, c’était un coup, poursuivez-moi en justice).

Autres conseils

Eh bien, c’est une mauvaise idée, car cela signifie que vous êtes maintenant responsable du maintien d’une fourchette de facto interne ... chaque fois que WordPress publie une mise à jour, vous devez créer un diff à trois voies pour fusionner vos modifications dans le nouveau " real " WordPress. (Trois-way diff signifie que vous faites un diff entre votre version de fourche de l'ancienne version et l'ancienne version standard pour créer un jeu de correctifs, puis appliquez ce jeu de correctifs à la nouvelle version.) Vous devriez également utiliser un VCS vous-même pour vous garder sain d'esprit.

Si vous n'êtes pas à la hauteur, vous ne l'êtes pas, il n'y a rien de mal à suivre le principe KISS et à ne pas modifier le code de l'application.

Si vous pouvez écrire un plug-in qui fait la même chose et avec autant d'efficacité, vous devriez le faire pour ne pas avoir à entretenir votre propre fork.

Cependant, il y a beaucoup de choses que WordPress est terrible (efficacité, sécurité) et que vous pouvez améliorer (parfois sans trop de travail, simplement en désactivant le code dont vous n'avez pas besoin) uniquement en piratant le code de l'application. WordPress est un sale code spaghetti hérité, écrit à l'origine par des personnes n'ayant pratiquement aucune connaissance des logiciels ni de la conception de bases de données. Il effectue beaucoup de choses extrêmement stupides, telles que l'interrogation de la base de données à chaque demande pour voir ce que c'est propre siteurl est, quand cela ne change jamais - rien de mal à prendre 5 minutes pour changer 2 lignes de code afin que cela ne le fasse plus.

J'ai travaillé en tant que responsable technique sur un blog classé dans le top 20 des classements Technorati et j'ai beaucoup travaillé pour adapter WordPress à un serveur unique, puis à un cluster (avec des serveurs séparés pour l'accès administrateur et public). Nous avions des proxys inverses en amont (par exemple, Varnish ou Squid) agissant en tant qu’accélérateurs HTTP et un système interne de cache de fragments de page et de pages s’enfouissant dans memcached avec la reprise en cache du système de fichiers à l’aide de PEAR :: Cache_Lite. Nous avons dû modifier WordPress pour qu'il fasse des choses comme envoyer des en-têtes HTTP sains et conviviaux pour le cache, afin de désactiver beaucoup de SQL et de traitements inutiles.

J'ai modifié WP pour qu'il fonctionne avec le moteur de stockage en cluster NDB de MySQL, doté uniquement de mémoire, ce qui impliquait de spécifier des index dans de nombreuses requêtes (nous avons finalement opté pour un cluster répliqué). En le modifiant pour qu'il fonctionne avec des serveurs distincts pour l'accès administrateur et l'accès public, nous avons verrouillé la version côté public afin qu'elle s'exécute avec des privilèges MySQL beaucoup plus réduits, permettant uniquement les lectures (un troisième utilisateur de MySQL a les privilèges de commentaire).

Si vous rencontrez un problème grave de spam lié aux commentaires (c'est-à-dire 10 000 euros / heure), vous devez faire quelque chose au-delà des plugins. Spam vous DOS car WordPress vient d’initialiser son noyau est à peu près une demi-seconde sur un P4 autonome, sans concurrence, et comme WP est une boule de poil de code, il n’ya aucun moyen de faire quoi que ce soit sans initialiser le noyau au préalable.

" WP-Cron " est braindead et devrait être désactivé si vous avez accès à une crontab réelle pour exécuter ces fonctions. Pas difficile à faire.

En bref, je pourrais continuer à énumérer à jamais les raisons pour lesquelles vous pourriez vouloir apporter des modifications.

Tout au long de ce processus, l'objectif de la facilité de maintenance était bien évidemment de limiter au maximum ces modifications, de les documenter aussi clairement que possible, et nous en avons implémenté de nombreux sous forme de plugins lorsque cela avait du sens.

Sur une combinaison blog / forum, nous avons harmonisé la procédure d’inscription afin que les personnes remplissent un formulaire pour s’inscrire simultanément à WordPress et à phpBB. Je suis sûr qu'il existe un meilleur moyen de faire cela avec les plugins, mais cela présentait un avantage inattendu: cela confond vraiment les spambots. Bien que plusieurs d'entre eux se soient inscrits chaque jour, nous avons publié environ deux messages de spam dans la vie du forum.

Ce n’est pas quelque chose que je recommanderais, bien sûr - cela nous empêche de mettre à jour l’un ou l’autre logiciel.

Dans la mesure du possible, je préconise vivement de ne pas modifier le code principal, en particulier dans un projet mis à jour comme WordPress. Si WordPress ne peut pas être conçu pour faire ce dont vous avez besoin avec des plugins, vous êtes probablement mieux avec un système plus extensible / générique comme Drupal. Pirater un système de gestion de contenu axé sur les blogs sur quelque chose d'autre pourrait ne pas en valoir la peine.

Dans les anciennes versions de WordPress (1.0 et même au début des versions 2.0), je n'aurais pas cherché à modifier WordPress lui-même.

Cependant, l'architecture de WordPress a mûri. Les barres latérales n'ont plus besoin d'être codées manuellement. Au lieu de cela, vous pouvez porter votre thème pour utiliser des widgets et simplement créer des widgets (quelle aubaine!). N'aimez pas comment quelque chose est affiché - modifiez simplement le thème! Vous n'aimez pas comment WordPress gère quelque chose? Créer un plug-in. J'ai bien du mal à trouver une raison de modifier le code WordPress lui-même qui ne peut pas être géré via les composants modulaires contemporains de WordPress (widgets, plug-ins, thèmes).

Je suis le genre de personne à toujours être "sous le capot". dans les applications open source comme WordPress. Cependant, de nos jours, il n'y a vraiment aucune bonne raison de modifier le code WordPress principal.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top