Neden wordpress ile form gönderdiğimde URL doğru olsa da 404 sayfa yüklüyor


23

Sadece basit bir iletişim formu oluşturuyorum, ancak geçersiz bir sayfaya yayınlanmış gibi göründüğünü fark ettim. Tarayıcıdaki URL doğru, ancak sayfanın başlığı "Sayfa bulunamadı"

sayfanın üstünde

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

aşağıda ... 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
Sayfanız hangi URL’de bulunur?
MikeSchinkel

Aynı sorun, WooCommerce Aboneliklerini kullanıyorsanız ve "abonelikler" adlı bir giriş alanına sahipseniz görünür. Neler olup bittiğini anlamak çok uzun zaman aldı ve bu yazı sayesinde düzeltmeyi başardım. Umarım WooCommerce Aboneliklerini kullanan ve benzer bir sorunu olan biri bunu faydalı bulur!
Whiplash

Yanıtlar:


49

Yanılıyor olabilirim ama belli belirsiz hatırlıyorum: isim, e-posta WordPress tarafından yorum yazmak için kaçırıldı.


1
Evet, isim alanı, bunun yerine jm_name gibi bir ad alanı var :)
Backie

Teşekkürler Tom! WP gerçekten formu kaçırıyordu. Bu garip.
Svetoslav Marinov

Bu yardımcı olması durumunda AngularJS için de geçerlidir. ;)
Mark

Bu sorunla karşılaştım, bu cevap beni doğru yola yönlendirdi. Adı veya e-postası olan bir alanım yoktu, ancak giriş adından biri özel yazı türüne (cpt) eşitti, bu yüzden wp sorgusunu ve 404'ü tetikliyordu. Bu yüzden alan adını cpt'den farklı yapmak için değiştirdim ve konu.
Mohsin

4

Hiçbir sadece name veya emailTom yazdığı gibi, sorun. Özel Yazı Türlerimden biriyle aynı ad özniteliğine sahip olan giriş alanıyla bile sorun yaşadım. Örneğin:

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

CPT "filmi" başka bir yere kaydedildiğinde, form gönderiminiz 404 hatayla bitecektir.

Sonuç: Do kullanmayın name, emailve any registered custom post type handleformlarınızda girdi adı özniteliği değeri olarak.


Orijinal soruya daha doğru bilgilerle cevap vermeye çalıştım. Ehm, muhtemelen ... :-) Küçük bir düzenleme ekleyerek.
Marek

1

name="email"Gibi bir şey değiştirmeye çalışın, name="my_theme_email"form verilerini gönderirken bazı alanların WordPress ile ayrılmış gibi göründüğü tüm alanınızla aynı yapın. Ben de aynı sorunu gördüm ve bu şekilde düzelttim.


0

Bana işe yarıyor, daha yeni

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

Çalışacak. Teşekkürler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.