2014-01-22 97 views
0

根據選項可以創建子菜單頁嗎?在我的插件選項頁面中,我得到了一個標題(子菜單頁面)的輸入字段。這些標題以逗號分隔。我在我的插件腳本中嘗試了以下內容:如何動態創建wordpress儀表板子菜單頁面?

function my_menu() { 
    global $page_hook_suffix; 
    $page_hook_suffix = add_menu_page(...); //adding main menu 
    $titles=get_option('my_option_name'); 
    $titles=explode(",",$titles); 
    if(!empty(get_option('my_option_name'))){ 
     foreach($titles as $title){  
      $slug = str_replace(' ', '_', $title); 
      add_submenu_page("main_menu_name", "$title", "$title", 'manage_options', "$slug", "$slug"); 
     } 
    } 
} 
add_action('admin_menu', 'my_menu'); 

到目前爲止工作正常。但是現在我需要在子菜單頁面上顯示內容。但是,甚至可以動態地創建(內容)功能?我不知道如何使用函數名稱作爲變量。

我嘗試這樣做:

if(!empty(get_option('my_option_name'))){ 
    foreach($titles as $title){  
     $slug = str_replace(' ', '_', $title) . "()"; 
     function $slug { 
      echo "hi!"; 
     } 
    } 
} 

看起來愚蠢的,當然是行不通的。發生以下錯誤:

Parse error: syntax error, unexpected '$slug' (T_VARIABLE)

甚至有可能嗎?如果是,如何將變量用作函數名稱?

回答

0

的eval()是溶液:

if(!empty(get_option('my_option_name'))){ 
    $titles=get_option('my_option_name'); 
    $titles=explode(",",$titles); 
    foreach($titles as $title){  
     $slug = str_replace(' ', '_', $title);    
     eval(' function '.$slug.'() { 
      echo '.$title.'; 
      }' 
     );    
    } 
} 
相關問題