2010-03-07 7 views
0

ici est mon code d'activation du pluginPourquoi mes variables globales ne seront-elles pas résolues correctement?

$classified_category_name = 'classified'; 
$credit_table_name = 'credits'; 
$credit_table_version = 0.1; 

register_activation_hook(__FILE__, 'LBH_Classifieds_Activate'); 

function LBH_Classifieds_Activate() 
{ 
    global $wpdb; 
    global $classified_category_name; 
    global $credit_table_name; 
    global $credit_table_version; 
    $table_name = $wpdb->prefix . $credit_table_name; 
    if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) { 
      $sql = "CREATE TABLE " . $table_name . " (
        time bigint(11) DEFAULT 0 NOT NULL, 
        amount tinyint(3) DEFAULT 0 NOT NULL, 
        username varchar(50) NOT NULL, 
        UNIQUE KEY username (username) 
      );"; 
      require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
      dbDelta($sql); 
    } 
    add_option('lbh_db_version', $credit_table_version); 
} 

mais les variables globales sont vides.

De même, existe-t-il un moyen d'imprimer des informations depuis un plugin? J'ai essayé de renvoyer un WP_Error, en lançant un WP_Error, et tout ce que je peux obtenir est une grosse boîte jaune, la plupart du temps vide, avec "Le plugin n'a pas pu être activé car il a déclenché une erreur fatale".

Répondre

1

Lorsque l'activation se produit, votre plug-in est inclus d'une autre fonction, puis votre myplugin_activate() est appelée à partir de cette fonction (en particulier, dans la fonction activate_plugin()) au point où votre plugin est activé. Les principales variables du corps sont donc dans le cadre de la fonction activate_plugin() et ne sont pas globaux, à moins que vous déclarez explicitement leur portée globale

Voir le reste de cette note sur la portée variable: http://codex.wordpress.org/Function_Reference/register_activation_hook#A_Note_on_Variable_Scope

Questions connexes