WordPress : Est-il possible de remplacer seulement une partie du fichier js (asset) d’un autre plugin/thème ?
J’essaie de faire un pas en avant sur la base de cette question et au lieu de remplacer l’ensemble du fichier .js d’un autre plugin, je me demande s’il est possible de remplacer/échanger dynamiquement une partie seulement de ce fichier js?
Pour en quelque sorte peut-être « injecter »/importer ma ou mes propres fonctions en plus dans ce fichier spécifique en toute sécurité (et assez nativement 🙂 ?
Solution n°1 trouvée
Malheureusement non, vous pouvez retirer le fichier de la file d’attente comme le suggère la réponse aux autres questions et mettre en file d’attente votre propre version, sinon vous devrez le charger, puis essayer de modifier le code chargé au moment de l’exécution, ce qui n’est presque toujours pas possible.
Monkeypatching pourrait être une solution, en supposant que votre code s’exécute avant le leur, mais qu’il est chargé après. Mais c’est rarement possible. On parle de 1 chance sur mille. C’est là que le code d’origine est chargé, mais avant qu’il ne soit exécuté, votre code remplace les fonctions et les structures de données. par exemple, supprimer un plugin jQuery puis mettre le vôtre à sa place. Ce n’est cependant pas possible dans la plupart des situations. Notez que le monkeypatching est largement considéré comme un gâchis, n’est pas une solution à long terme et peut causer des problèmes à lui seul.
Il est également possible que l’auteur du fichier d’origine ait voulu que son code soit extensible et l’ait construit de cette façon. Mais c’est peu probable. Vous auriez besoin de lire le code pour le savoir au cas par cas.
De toute façon, il n’y a pas de solution basée sur WP pour cela . Pour continuer dans cette voie, vous devrez demander sur stackoverflow, en particulier comment remplacer la fonctionnalité dans un fichier javascript qui a déjà été chargé à l’aide d’un fichier javascript nouvellement chargé. Dans la plupart des situations, la réponse est que vous ne pouvez pas. Pour les rares situations où vous pouvez le forcer, vous aurez besoin de connaissances avancées en javascript.
0 commentaire