Если при отправке формы вы получаете ошибку 404, при этом если у вас чистая версия WordPress, вы ничего не делали с настройками firewall, а также не ограничивали обработку POST запросов к сайту, то, скорее всего, причина этому в использовании служебных слов при отправке данных формы.
В WordPress есть список зарезервированных имен переменных, которые приведут к запуску внутренних обработчиков WordPress и получению ошибки 404, если не будут выполнены их условия. Поэтому для собственных форм лучше добавлять префиксы и не использовать чистые названия переменных, например, name, email и т.п.
Список зарезервированных слов следующий:
- attachment
- attachment_id
- author
- author_name
- calendar
- cat
- category
- category__and
- category__in
- category__not_in
- category_name
- comments_per_page
- comments_popup
- custom
- customize_messenger_channel
- customized
- cpage
- day
- debug
- embed
- error
- exact
- feed
- hour
- link_category
- m
- minute
- monthnum
- more
- name
- nav_menu
- nonce
- nopaging
- offset
- order
- orderby
- p
- page
- page_id
- paged
- pagename
- pb
- perm
- post
- post__in
- post__not_in
- post_format
- post_mime_type
- post_status
- post_tag
- post_type
- posts
- posts_per_archive_page
- posts_per_page
- preview
- robots
- s
- search
- second
- sentence
- showposts
- static
- subpost
- subpost_id
- tag
- tag__and
- tag__in
- tag__not_in
- tag_id
- tag_slug__and
- tag_slug__in
- taxonomy
- tb
- term
- terms
- theme
- title
- type
- w
- withcomments
- withoutcomments
- year