страница показывает 404 в форме submit

Я создаю страницу шаблона, в которой у меня есть форма, после тестирования она дала ошибку 404. должен ли я положить что-то еще в действие?

`<form action="results.php" method="post"> <!--my code--> </form>` 

я помещаю что-то еще в действие?

Да. Полный путь к файлу. Если ваш сайт http://mysite.com и вы находитесь на домашней странице, вы запрашиваете файл по адресу http://mysite.com/result.php . Если вы находитесь в архиве дат, вы будете запрашивать файл по адресу http://mysite.com/2013/03/03/result.php . Файл, который вы хотите, находится на http://mysite.com/wp-content/themes/theme-name/result.php . См. Проблему?

Относительные URL-адреса плохо работают в контексте WordPress.

Но я бы сказал, что даже если бы вы создали полный URL-адрес файла шаблона, который вы все еще делаете неправильно. Если вы загружаете такой файл, то ни одно из ядер WordPress не загружается, и вы, как правило, получаете неопределенные функциональные ошибки.

Правильный способ сделать это, на мой взгляд, – это …

  1. для отправки запроса в тот же файл шаблона, который содержит форму.

     <form action="<?php the_permalink(); ?>" method="post"> 

    Этот конкретный код работает только в некоторых случаях, поэтому вам может понадобиться site_url() URL-адрес по-другому, используя, например, site_url() . Обычно вы можете просто опустить атрибут действия (как подсказывает Мило).

  2. Вы также можете подключить функцию к template_redirect или wp_head и обработать форму на этом крючке.
  3. Или используйте API AJAX для обработки отправки формы. Конечно, это означает и Javascript.

Если вы создаете форму на более чем одной странице, вам понадобится один из вариантов 2 или 3. В противном случае используйте первый вариант.

Если вам нужна форма, которая будет отображаться на одной странице, а результаты – на другой, вам понадобится настраиваемый шаблон страницы для каждого компонента, и вам нужно будет создать страницу для формы, а другую для результатов через раздел «Страницы» из бэкэнда WordPress .