Hej smile.gif

Czytałam o obsłudze formularzy w panelu administracyjnym. Natknęłam się na informacje, że powinno się to robić w taki sposób:

  1.  
  2.  
  3. function funkcja_obsługująca_formularz() {
  4.  
  5. if(isset($_POST['title']) && isset($_POST['content'])) {
  6.  
  7. //wykorzystanie przesłanych danych
  8.  
  9. }
  10.  
  11. wp_redirect( plugins_url( 'przekierowanie-na-jakąś-stronę.php', __FILE__ ) );
  12.  
  13. }
  14.  
  15.  
  16. add_action( 'admin_post_nazwa_akcji', 'funkcja_obsługująca_formularz' );
  17.  
  18.  
  19. echo '<form action="' .admin_url('admin-post.php'). '" method="post">
  20.  
  21. <input type="hidden" name="action" value="nazwa_akcji" />
  22.  
  23. <table>
  24. <caption><h1>Add new slide</h1></caption>
  25. <tbody>
  26. <tr class="narrow">
  27. <td><label for="title">Title:</label></td>
  28. <td><input name="title" id="" type="text" value="" maxlength="255" title="title" /></td>
  29. </tr>
  30. <tr>
  31. <td><label for="content">Content</label></td>
  32. <td><textarea name="content" id="" rows="10" title="content"></textarea></td>
  33. </tr>
  34. </tbody>
  35. </table>
  36.  
  37. <input type="submit" value="Submit" />
  38.  
  39.  
  40. </form>';
  41.  


Czyli w skrócie:
ustawienie akcji na ../wp-admin/admin-post.php
ustawienie ukrytego inputa o nazwie 'action' i dowolnej wartości
wywołanie haka add_action('admin_post_wartość_z_inputa', 'funkcja_obsługująca_formularz');

Niestety u mnie po wciśnięciu submita przekierowuje normalnie na admin-post, czyli włącza się biała pusta strona. Jest na to jakiś inny sposób? Jeśli nie to czy pozostawienie pustej wartości action i wysyłanie danych przez plik do siebie samego jest dobrym rozwiązaniem? Gdy robię to w normalny sposób, czyli jako action osobny plik php to nie otwiera się on w panelu administracyjnym tylko jako osobna strona.