« Plug-in n'a pas pu être activée car elle a déclenché une erreur fatale. »
-
16-10-2019 - |
Question
Le code ci-dessous est contenu dans un fichier plug-in. Il cherche simplement à exécuter une requête de mise à jour contre la base de données de wp. Cependant, sa génération d'une erreur fatale.
Fatal error: Cannot redeclare ce3_cleanup()
Dois-je besoin de charger un fichier de configuration pour obtenir acess à $ wpdb-> requête?
function ce3_cleanup()
{
$wpdb->query("update wp_postmeta set meta_key=replace(meta_key,'cb2_customHeader','_cb2_customHeader') where meta_key like 'cb2_customHeader'");
$wpdb->query("update wp_postmeta set meta_key=replace(meta_key,'cb2_customTitle','_cb2_customTitle') where meta_key like 'cb2_customTitle'");
}
register_activation_hook(__FILE__, 'ce3_cleanup');
?>
La solution
La méthode recommandée pour écrire cette fonction serait:
function ce3_cleanup() {
global $wpdb;
$wpdb->query( "update $wpdb->postmeta set meta_key=replace(meta_key,'cb2_customHeader','_cb2_customHeader') where meta_key like 'cb2_customHeader'" );
$wpdb->query( "update $wpdb->postmeta set meta_key=replace(meta_key,'cb2_customTitle','_cb2_customTitle') where meta_key like 'cb2_customTitle'" );
}
register_activation_hook( __FILE__, 'ce3_cleanup' );
Autres conseils
Non, les moyens de Cannot redeclare...
que vous avez déjà une fonction nommée ce3_cleanup()
quelque part ailleurs sur votre site. Peut-être dans un autre plug-in ou dans votre thème.
Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange