Ich habe ein Problem mit meiner Seite. Ich versuche eine "Kontakt" Seite zu erstellen. Es funktioniert vom Design her perfekt. Aber wenn ich versuche, das Formular an dieselbe Seite wie origin zu senden. Es wird ein 404-Fehler zurückgegeben.
Das passiert nur, wenn ich das Formular abschicke. Ich habe sowohl mit GET- als auch mit POST-Anfragen versucht. Nichts scheint zu funktionieren.
Ich habe sogar den PHPMailer-Teil auskommentiert. Es wird ausschließlich durch die zusätzlichen Variablen verursacht.
Wenn es etwas hilft, sind sie "Name", "E-Mail" und "Nachricht".
$_POST
Daten sollten wirklich keinen Einfluss darauf haben, ob die Seite gefunden wird oder nicht.Antworten:
Stellen Sie alles voran , insbesondere Ihre Variablen. Die Namen, die Sie verwenden, werden von WordPress intern verwendet (siehe Kommentarformular), sodass WordPress möglicherweise versucht, etwas mit Ihren Formularwerten zu tun. Wenn dies fehlschlägt, erhalten Sie eine Fehlermeldung.
Während
$_GET
Probleme normalerweise leicht zu beheben sind$_POST
und$_REQUEST
Namen nicht so einfach sind.Die folgende Liste ist wahrscheinlich nicht vollständig. Aber seine bloße Länge sagt uns eine Lektion:
Vermeiden Sie jeden Namen, den Sie in einem Wörterbuch finden. Stellen Sie Ihren Formularnamen ein Präfix voran.
Liste der reservierten Namen in
$_POST
und$_REQUEST
von WordPress 3.5 verwendetDiese Namen können Nebenwirkungen haben, wenn sie in Designs oder Plugins verwendet werden. Einige werden nur für bestimmte Seiten verwendet (
removeheader
), andere für mehrere Seiten oder Anforderungen. Vermeiden Sie sie alle, wenn Sie können.Variablennamen
quelle
Alternativ können Sie es in WP posten und die Verarbeitung in functions.php erledigen.
Für das Formular:
Und füge eine versteckte Eingabe hinzu, die WP mitteilt, mit welcher Funktion du sie verarbeitest:
Schreiben Sie die Funktion in functions.php:
Sagen Sie WP, was die Funktion ist:
quelle