全局变量在函数之间不起作用

时间:2013-10-31 05:58:44

标签: wordpress wordpress-plugin

我正在为我的项目创建插件。我想在插件被激活时创建一个页面,同样的方式我想在插件被取消激活时删除该页面...我能够创建页面但我在删除页面时遇到问题...

我的代码是

 global $page_id;
 register_activation_hook(__FILE__,'createPage');
 register_deactivation_hook(__FILE__, 'dropPage');
 function createPage()
 {
   global $page_id;
   $page['post_type']    = 'page';
   $page['post_content'] = 'hello this page created by plugin';    
   $page['post_status']  = 'publish';
   $page['post_title']   = 'dpage';
   $page_id = wp_insert_post ($page);
 }

 function dropPage()
 {
     global $page_id;
      wp_delete_page($page_id);
 }

它不会删除页面...如果我给wp_delete_post('116')然后它工作正常...我已在全局变量中指定页面ID ,那么我也无法检索它。

任何人都可以建议我怎么做吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

您添加的全局$page_id只会在您激活插件时包含页面ID。要存储页面ID,请使用Options API

 register_activation_hook(__FILE__,'createPage');
 register_deactivation_hook(__FILE__, 'dropPage');
 function createPage()
 {
   $page['post_type']    = 'page';
   $page['post_content'] = 'hello this page created by plugin';    
   $page['post_status']  = 'publish';
   $page['post_title']   = 'dpage';
   $page_id = wp_insert_post ($page);
   update_option('the_page_id_i_created', $page_id );
 }

 function dropPage()
 {
    if( get_option('the_page_id_i_created') ){
      wp_delete_page( get_option('the_page_id_i_created')  );
    }
 }