2014-10-04 4 views
0

У меня есть этот код:Wordpress submit_button(); на новую страницу

function my_main_function() 
{ 
    add_menu_page('MyNewPlugin', 'MyNewPlugin', 'manage_options', 'my_plugin_options', 'wps_theme_func'); 
} 
    add_action('admin_menu', 'my_main_function'); 


function wps_theme_func() 
{ 
    echo ' 
     <div class="wrap"> 
      <div id="icon-options-general" class="icon32"><br></div> 
      <h2>Main Page</h2> 
     </div> 
    '; 

    submit_button('Add data', 'secondary'); 
} 

Как я могу открыть новую страницу с помощью Добавить кнопку данных?

Страница должна отображаться в том же месте, что и Главная страница.

ответ

0

submit_button не имеет возможности перенаправлять на другую страницу.

Но вы можете проверить наличие скрытого ввода-элемент и сделать ручную переадресацию в Init-действиях:

function wps_theme_func() 
{ 

    echo ' 
     <div class="wrap"> 
      <div id="icon-options-general" class="icon32"><br></div> 
      <h2>Main Page</h2> 
     </div> 
     <input type="hidden" name="wps_theme_do_redirect" value="true"> 
    '; 

    submit_button('Add data', 'secondary'); 
} 

add_action('init', 'wps_theme_init'); 

function mywps_theme_init() { 
    if(isset($_POST['wps_theme_do_redirect'] && $_POST['wps_theme_do_redirect'] == 'true') { 
     wp_redirect('options.php'); 
     exit(); 
    } 
} 

не забудьте деформировать выход wp_theme_func() с элементом формы.

редактировать: конечно, вы можете использовать форму-атрибут переадресацией:

function wps_theme_func() 
{ 
    echo ' 
     <div class="wrap"> 
      <div id="icon-options-general" class="icon32"><br></div> 
      <h2>Main Page</h2> 
     </div> 
     <form action="admin.php?page=page-b" method="post"> 
    '; 

    submit_button('Add data', 'secondary'); 

    echo '</form>'; 
} 
+0

Я попробовал это, и это не похоже на работу. Когда кнопка нажата, она должна установить $ _POST ['submit']? – Mrlx

+0

@Mrlx да. В [Справочник по функциям] (http://codex.wordpress.org/Function_Reference/submit_button) указано, что submit_button() будет генерировать HTML-элемент ввода с атрибутом name «submit», и форма должна быть отправлена ​​через POST. Может быть, у вас нет формы-тега? Посмотрите на [пример для настраиваемых страниц администрирования] (http://codex.wordpress.org/Administration_Menus#Sample_Menu_Page). –

+0

Я обернул его в форму, и теперь я получаю это предупреждение: «Предупреждение: не могу изменить информацию заголовка - уже отправленные заголовки». Если я попытаюсь поместить его в action = 'options.php', это говорит о том, t имеет достаточные права для выполнения этой операции. – Mrlx

Смежные вопросы