Tại sao khi tôi gửi biểu mẫu trong wordpress, nó tải một trang 404 mặc dù URL là chính xác


23

Tôi chỉ tạo một hình thức liên lạc đơn giản, nhưng tôi nhận thấy rằng nó dường như đăng lên một trang không hợp lệ. Url trong trình duyệt là chính xác nhưng tiêu đề của trang là "Không tìm thấy trang"

trên đầu trang

$emailed = false;
if (isset($_POST['submit'])) {
    wp_mail('example@example.com', $_POST['subject'], $_POST['content']);
    $emailed = true;
}

bên dưới ... HTML:

<form action="<?php the_permalink(); ?>" method="post" id="contactform">
    <div class="formelem">
        <label for="name">Name</label>
        <input type="text" name="name" class="required" />
    </div>
    <div class="formelem">
        <label for="email">Email</label>
        <input type="text" name="email" class="required email" />
    </div>
    <div class="formelem">
        <label for="subject">Subject</label>
        <input type="text" name="subject" class="required" />
    </div>
    <div class="formelem">
        <label for="content">Content</label>
        <textarea name="content" cols="30" rows="10" class="required"></textarea>
    </div>

    <input type="submit" value="Submit Message" name="submit" value="submit" />
</form>

2
Trang của bạn nằm ở URL nào?
MikeSchinkel

Vấn đề tương tự xuất hiện nếu bạn sử dụng Đăng ký WooC Commerce và bạn có trường nhập liệu, được đặt tên là "đăng ký". Tôi mất khá nhiều thời gian để tìm hiểu chuyện gì đang xảy ra và tôi đã cố gắng khắc phục nhờ bài đăng này. Tôi hy vọng rằng ai đó sử dụng Đăng ký WooC Commerce và có vấn đề tương tự sẽ thấy hữu ích!
Whiplash

Câu trả lời:


49

Tôi có thể sai, nhưng tôi mơ hồ nhớ rằng: tên, email bị tấn công bởi WordPress để đăng bình luận, nếu bạn đổi tên các thành phần của biểu mẫu thành tên liên hệ và email liên hệ, bạn có gặp vấn đề tương tự không?


1
Phải, đó là trường tên, thay vào đó là không gian tên như jm_name :)
Backie

Cảm ơn Tom! WP đã thực sự chiếm quyền điều khiển. Điều đó thật lạ.
Svetoslav Marinov

Điều này cũng đúng với AngularJS, trong trường hợp có ích. ;)
Đánh dấu

Tôi phải đối mặt với vấn đề này, câu trả lời này hướng tôi đến con đường đúng. Tôi không có trường có tên hoặc email, nhưng một trong những tên đầu vào bằng với loại bài đăng tùy chỉnh (cpt) nên nó đã kích hoạt truy vấn wp và 404. Vì vậy, tôi đã thay đổi tên trường để làm cho nó khác với cpt và nó đã sửa vấn đề.
Mohsin

4

Nó không chỉ name hoặc emailvấn đề, như Tom đã viết. Tôi đã gặp vấn đề ngay cả với trường đầu vào với thuộc tính tên giống như một trong các loại bài đăng tùy chỉnh của tôi. Ví dụ:

...
<input type="text" name="movie">
...

Và khi đã đăng ký "phim" CPT ở một nơi khác, việc gửi biểu mẫu của bạn sẽ kết thúc với lỗi 404.

Kết luận: không sử dụng name, emailany registered custom post type handlenhư tên đầu vào giá trị thuộc tính trong các hình thức của bạn.


Vâng, tôi đã cố gắng trả lời câu hỏi ban đầu với thông tin chính xác hơn. Ơ, có lẽ ... :-) Thêm một chút chỉnh sửa.
Marek

1

Cố gắng thay đổi name="email"thành một cái gì đó như name="my_theme_email", làm tương tự với tất cả các lĩnh vực của bạn, có vẻ như một số tên được dành riêng với WordPress khi gửi dữ liệu biểu mẫu. Tôi đã có cùng một vấn đề và tôi đã sửa nó như thế.


0

Nó hoạt động với tôi, chỉ cần thay đổi của bạn

input type name, email, subject, and content to any name as names, emails, subjects, contents.

Nó sẽ làm việc. Cảm ơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.