Cum să transmiți date de la o pagină la altă pagină/fișier în WordPress
Am o temă personalizată în WordPress. Aceasta este calea către tema mea personalizată: C:\wamp\www\wordpress2\wp-content\themes\sscy1002\sscy1002
Am creat o Pagină în WordPress care conține câteva elemente de formular. Iată codul Paginii mele:
<form action="<?php bloginfo('stylesheet_directory'); ?>/Query.php" enctype="multipart/form-data" method="post" name="contact">
<label for="author">Nume:</label> <input class="required input_field" id="author" type="text" name="author" />
<div class="cleaner h10"></div>
<label for="email">Email:</label> <input class="validate-email required input_field" id="email" type="text" name="email" />
<div class="cleaner h10"></div>
<label for="subject">Subiect:</label> <input class="input_field" id="subject" type="text" name="subject" />
<div class="cleaner h10"></div>
<label for="text">Mesaj:</label> <textarea class="required" id="text" cols="0" name="text" rows="0"></textarea>
<div class="cleaner h10"></div>
<label for="image">Imagine:</label><input type="file" name="file" />
<input class="submit_btn float_l" id="submit" type="submit" name="submit" value="Trimite" />
<input class="submit_btn float_r" id="reset" type="reset" name="reset" value="Resetează" />
</form>
Și iată codul meu Query.php din directorul C:\wamp\www\wordpress2\wp-content\themes\sscy1002\sscy1002:
<?php
get_header();
?>
<?
$name=$_POST['author'];
$email=$_POST['email'];
$subject=$_POST['subject'];
$message=$_POST['text'];
$image=$_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'],"imagess/".$image);
echo $name."<br/>";
echo $email."<br/>";
echo $subject."<br/>";
echo $message."<br/>";
echo "<img src='imagess/".$image."' alt='imagine'>";
?>
<?php
get_footer();
?>
Dar când trimit formularul primesc o eroare fatală:
Fatal error: Call to undefined function get_header() in C:\wamp\www\wordpress2\wp-content\themes\sscy1002\sscy1002\Query.php on line 2
Te rog ajută-mă să înțeleg cum să transmit date de la o pagină la alt fișier (sau la o altă Pagină) în WordPress. Am căutat răspunsuri pe Google și am încercat toate metodele găsite, dar nimic nu funcționează.
Îmi cer scuze pentru formatarea greșită a întrebării. Te rog ajută-mă!!!! Mulțumesc!!!

Poți încerca să folosești functions.php pentru a gestiona trimiterea formularului și a trimite datele prin AJAX.
Adaugă un câmp ascuns în formularul tău cu acțiunea care trebuie întreprinsă (în functions.php):
<input type="hidden" name="action" value="save_contact"/>
În footer.php adaugă codul jQuery pentru a gestiona cererea AJAX:
jQuery('#your-form').submit(ajaxSubmit);
function ajaxSubmit(e){
e.preventDefault();
var formData = jQuery(this).serialize()
jQuery.ajax({
type:"POST",
url: "<?php bloginfo('url'); ?>/wp-admin/admin-ajax.php",
data: formData,
success: function(response){
//AFIȘEAZĂ CONFIRMAREA
},
error: function(error){
//AFIȘEAZĂ MESAJUL DE EROARE
}
});
return false;
}
În final, în fișierul tău functions.php:
add_action('wp_ajax_save_contact', 'save_contact');
add_action('wp_ajax_nopriv_save_contact', 'save_contact');
function save_contact(){
//Fă aici ce dorești...
}
Sper să te ajute! :)

adaugă următorul cod înainte de get_header()
require_once('../../../wp-load.php');
primești eroare pentru că fișierul tău nu este pentru o pagină creată cu WordPress, ci doar un fișier PHP, trebuie să incluzi fișierul load.php pentru a încărca toate funcțiile necesare.

Ar trebui să folosești http://example.com/page-slug/
unde page-slug este pagina creată folosind Query.php ca șablon.
<form action="http://example.com/page-slug/" enctype="multipart/form-data" method="post" name="contact">
