web-dev-qa-db-ja.com

ワードプレスであるページから別のファイル/ページにデータを渡す

私はwordpress.Thisに私の顧客のテーマがありますこれは私の顧客のテーマのパスです。 C:\ wamp\www\wordpress2\wp-content\themes\sscy1002\sscy1002

私はいくつかのフォーム要素を含むwordpressでページを作成しました。これが私のページコードです。

 <form action="<?php bloginfo('stylesheet_directory'); ?>/Query.php" enctype="multipart/form-data" method="post" name="contact">
<label for="author">Name:</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">Subject:</label> <input class="input_field" id="subject" type="text" name="subject" />
    <div class="cleaner h10"></div>
    <label for="text">Message:</label> <textarea class="required" id="text" cols="0" name="text" rows="0"></textarea>
    <div class="cleaner h10"></div>
    <label for="image">Image:</label><input type="file" name="file" />

    <input class="submit_btn float_l" id="submit" type="submit" name="submit" value="Send" />
    <input class="submit_btn float_r" id="reset" type="reset" name="reset" value="Reset" />

    </form>

そして、これが C:\ wamp\www\wordpress2\wp-content\themes\sscy1002\sscy1002 ディレクトリの下の私のQuery.phpコードです。

<?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='image'>";
?>
<?php
get_footer();
?>

しかし、フォームを送信しているときに致命的なエラーが発生します。

致命的なエラー:2行目のC:¥wamp¥www¥wordpress2¥wp-content¥themes¥sscy1002¥sscy1002¥Query.phpにある未定義の関数get_header()の呼び出し /

Wordpressであるページから別のファイル(またはページの場合)にデータを転送する方法を教えてください。私はまたグーグルで答えを検索しました、そしてグーグルから得たすべての方法を試みましたが、うまくいきませんでした。

質問のフォーマットが間違っているのが残念です。私を助けてください!!!!ありがとうございます。

1
Bhuvnesh Gupta

フォーム送信を処理し、AJAXを介してデータを送信するためにfunctions.phpを使用することを試みることができます。

(functions.phpで)実行されるアクションであなたのフォームに隠しフィールドを追加します。

<input type="hidden" name="action" value="save_contact"/>

あなたのfooter.phpにAJAXリクエストを処理するjQueryコードを追加してください:

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){
       //SHOW CONFIRMATION
    },
    error: function(error){
       //SHOW ERROR MESSAGE
    }
});
return false;
}

最後に、あなたのfunctions.phpファイルに:

add_action('wp_ajax_save_contact', 'save_contact');
add_action('wp_ajax_nopriv_save_contact', 'save_contact');
function save_contact(){
     //Do whatever you want here...
}

それが役に立てば幸い! :)

1
Bruno Rodrigues

get_header()の前に次のコードを追加します。

require_once('../../../wp-load.php');

あなたのファイルはWordPressで作成されたページのためのものではないのでエラーになります、あなたはすべての必要な機能をロードするためにload.phpファイルをインクルードする必要があります。

0
Vikram Singh

http://example.com/page-slug/ を使用してください。

page-slugはmake Query.phpによってテンプレートとして作成されたページです。

<form action="http://example.com/page-slug/" enctype="multipart/form-data" method="post" name="contact">
0
ash patel