Intereting Posts

Обработка пользовательских форм в WP .. правильным способом?

Каков наилучший способ обработки формы в WP с использованием правильных шаблонов проектирования? Я нахожу много устаревшей и непоследовательной информации в Интернете, и то, как я это делаю сейчас, не является устойчивым.

На данный момент, когда я выполняю тяжелую работу PHP (т. Е. Обрабатываю большие формы), я стараюсь создать страницу в WordPress, выровнять HTML как можно больше, а затем создать собственный шаблон .. внутри шаблона I затем добавьте обработку PHP-файлов для обработки формы … это хорошо работает, но дублирует много кода шаблона, и если это большой сайт, я получаю множество пользовательских шаблонов.

Другие решения, которые я видел в Интернете:

  • создайте функцию, а затем добавьте ее в фильтр init, добавьте скрытое поле формы в html, чтобы форма была специально нацелена .. похоже, что она попытается обработать этот запрос при каждой загрузке страницы, поэтому не выглядит жизнеспособное решение.

  • Создайте плагин – как и выше, я действительно не хочу создавать полноценный новый плагин для обработки формы.

  • Создайте отдельный PHP-файл, называемый процессом, и просто застрял в нем материал PHP, похоже, что он удаляет себя из WP вместе, я действительно видел, что некоторые примеры полностью независимы, поскольку в нем даже есть соединение mysql.

[edit] Вот моя функция отправки формы: http://pastebin.com/VZCw3Br3 Это немного беспорядок, поэтому я прокомментировал это как можно больше.

Solutions Collecting From Web of "Обработка пользовательских форм в WP .. правильным способом?"

«создать плагин» на самом деле не является отдельным вариантом, вам все равно нужно как-то перехватывать запросы. Я использовал метод init , и это жизнеспособный вариант. Проверка isset на POST var перед тем, как начинать логику обработки, очень быстро, я сомневаюсь, что вы могли бы даже надежно измерить влияние в море других вещей, происходящих в процессе загрузки. Другой вариант – admin-post.php и admin_post_(action) . Этот метод потребует перенаправления после обработки.