2014-01-22 3 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.'; 
      }' 
     );    
    } 
} 
Смежные вопросы