2010-03-07 4 views
0

여기에 내 플러그인 활성화 코드글로벌 변수가 제대로 해결되지 않는 이유는 무엇입니까?

$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); 
} 

하지만 전역 변수는 비어 있습니다.

또한 플러그인 내에서 정보를 인쇄 할 수있는 방법이 있습니까? 나는 WP_Error를 반환하고, WP_Error를 던지려고했지만, "치명적인 오류가 발생했기 때문에 플러그인을 활성화 할 수 없습니다."라는 내용의 빈 상자가 큰 노란색 상자입니다.

답변

1

활성화가 발생 는 플러그인은 플러그인이 활성화되는 시점에서()합니다 (activate_plugin() 함수에서, 구체적으로) 해당 함수 내에서 호출되는 다음 myplugin_activate를 다른 기능에서 포함된다. 본체 변수는 activate_plugin() 함수의 범위에 따라서 그리고 당신이 명시 적으로 변수 범위에서이 메모의 나머지 부분을 참조하십시오 글로벌 범위

를 선언하지 않는 한, 글로벌되지 않습니다 http://codex.wordpress.org/Function_Reference/register_activation_hook#A_Note_on_Variable_Scope

관련 문제