Witam,

Piszę plugin do wordpressa z katalogiem produktów i zablokowałem się na następującym problemie.

Cała struktura wygląda tak:
  1. <?php
  2. class ProductCatalogue {
  3.  function AdminCategories(){...}
  4.  function AdminPhotos() {...}
  5.  function AdminSettings() {...}
  6.  function AdminProducts() {...}
  7.  function AdminMain() {...}
  8. }
  9. ?>

Każda z metod odpowiada konkretnej stronie w panelu admina. AdminMain to index administracji pluginem. Zgodnie z WP plugin API
dodaje sobie nowe strony do panelu admina:
  1. <?php
  2. $pc_plugin = new ProductCatalogue();
  3. function ProductCatalogue_ap() {
  4.  global $pc_plugin;
  5.  if (!isset($pc_plugin)) {
  6.   return;
  7.  }//ENDIF
  8.  if (function_exists('add_menu_page')) {
  9.   add_menu_page('Product Catalogue', 'Product Catalogue', 9,__FILE__, array(&$pc_plugin, 'AdminMain'));
  10.   add_submenu_page(__FILE__, 'Categories', 'Categories', 9, __FILE__, array(&$pc_plugin, 'AdminCategories'));
  11.   add_submenu_page(__FILE__, 'Products', 'Products', 9, __FILE__, array(&$pc_plugin, 'AdminProducts'));
  12.   add_submenu_page(__FILE__, 'Photos', 'Photos', 9, __FILE__, array(&$pc_plugin, 'AdminPhotos'));
  13.   add_submenu_page(__FILE__, 'Settings', 'Settings', 9, __FILE__, array(&$pc_plugin, 'AdminSettings'));
  14.  }//ENDIF
  15. }
  16. add_action('admin_menu', 'ProductCatalogue_ap');
  17. ?>

Wszystko zgodnie z dokumentacją WP. http://codex.wordpress.org/Adding_Administration_Menus
Wp akceptuję taką strukturę danych w
  1. <?php
  2. add_menu_page();
  3.  array(&$pc_plugin, 'AdminMain'); // referencja do obiektu , nazwa metody
  4. ?>

Jadnak w add_submenu_page() coś się wysypuje. Owszem dodaje mi podstronę w menu, ale content, za który jest odpowiedzialne wywołanie $pc_plugin->AdminSettings() już się nie wyświetla, gdyż wyświetla mi tylko AdminMain na wszystkich podstronach.
Spotkał się ktoś kiedyś z takim problemem?

(Mod, Przepraszam za to że w php ale tylko tutaj będzie oglądalność )