« Plug-in n'a pas pu être activée car elle a déclenché une erreur fatale. »

wordpress.stackexchange https://wordpress.stackexchange.com/questions/2326

  •  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');
?>
Était-ce utile?

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
scroll top