web-dev-qa-db-fra.com

Quelles fonctions dans le thème ou le plugin se chargent en premier

J'ai créé un plugin pour remplacer la fonction d'un thème. Au fur et à mesure que j'apprends que la fonction dans le plugin se charge en premier, mais que j'ai une erreur

Erreur fatale: impossible de redéclarer wooc_extra_register_fields () (précédemment déclaré dans ****/themes/****/functions.php: 247) dans ***/plugins/custom-plugin/custom-plugin.php à la ligne 89

Pas sûr de ce que je fais mal. De même, les fonctions du thème doivent être remplacées si! Function existe. Alors, quelle est la bonne façon de remplacer une fonction de thème? La fonction existe à l’aide d’un plugin ??

2
user2834491
In wp-settings.php, WordPress first checks for any must-use plugins (plugins in the optional mu-plugins folder) and loads those.

Ensuite, si vous exécutez une installation multisite, il vérifie les plug-ins activés par le réseau et les charge.

1
Shiva

Pour votre situation, il serait préférable d’envelopper le plugin dans function_exists

if ( ! function_exists( 'wooc_extra_register_fields' ) ) {
    function wooc_extra_register_fields() {
    }
}

dans le thème parent, car cela rend les fonctions du thème connectables. Vous pouvez ensuite créer un thème enfant et redéclarer la fonction dans le functions.php du thème enfant.

1
Tunji