Wordpress表单未提交

时间:2017-07-17 04:43:14

标签: php wordpress forms action

你好我对WordPress很新,我的要求我已经在wordpress主题中创建了几个php文件。 whereformform.php包含

<form method="post" name="details" action="customerdetails.php">

在点击提交按钮后,表单必须重定向到php中的customerdetails.php它工作正常但在wordpress中它给出了404错误(找不到页面)我将所有新的php文件保存在现有主题文件夹中。

请建议我这是在节省时间。

5 个答案:

答案 0 :(得分:3)

由于wordpress有其自己的特定方式来处理ajax调用,因此wordpress也具有通过表单提交来发布http请求的方式。在codex on wordpress中,有更多详细信息。

在简要说明中,在wordpress主题上使用您的functions.php文件:

您需要做的第一件事是在您的 form 标记的action属性中设置以下网址:

<form action="http://www.example.com/wp-admin/admin-post.php" method="post"> <input type="hidden" name="action" value="my_handler_function"> </form>

一旦指出,您需要添加一个隐藏输入,其名称属性为 action ,而value属性则指定操作的名称。然后,您需要在functions.php文件上构建处理程序函数。这是您编写所需代码的地方,该代码用于处理全局 $ _ POST $ _ REQUEST 变量将收到的数据。

function my_handler_function() {
  var_dump($_REQUEST);
  die();
//request handlers should die() when they complete their task
}

下一步是使用动作挂钩 admin_post_nopriv _ admin_post _ 将此功能绑定到表单。两者之间的区别在于表格的放置位置。如果您的表单是用于wordpress管理员的自定义功能,则该表单是私有的,您可以使用 admin_post 挂钩操作。如果此表单是您公开内容的一部分,请使用 admin_post_nopriv _ ,如以下示例所示:

add_action( 'admin_post_nopriv_my_handler_function', 'my_handler_function' );

如上面的代码示例所示,您需要调用add_action函数。在第一个参数中,需要将wordpress提供的动作挂钩与以 action 形式在隐藏输入中指定的动作值结合使用,例如 admin_post_nopriv_ $ action_value 。在第二个参数中,您需要放置在functions.php文件上构建的函数名称。两者都是强制性的。

出于约定,通常将函数处理程序的名称设置为与操作输入的值相同,以避免误解并提高可读性。

一旦将所有内容放在一起,您要做的就是测试代码。

编码愉快!

PD:如果您想了解有关wordpress的此过程,请查看 wp-admin / admin-post.php 文件,但什至不敢对其进行修改。

答案 1 :(得分:1)

404错误表示表单操作错误。

<form method="post" name="details" action="customerdetails.php">
                                          ^                   ^

将操作更正为customerdetails.php

的确切路径

答案 2 :(得分:1)

问题必须与路径(提交时的表单重定向URL),尝试使用完整的URL。 你能分享一下你的表格吗?

答案 3 :(得分:1)

// Put your file customerdetails.php in current theme and use following path in action:-

  <form method="post" name="details" action="<?php echo get_template_directory_uri() ?>/customerdetails.php"> 

答案 4 :(得分:1)

  1. 使用模板编辑您的php文件。 防爆。 http://www.wpbeginner.com/wp-themes/how-to-create-a-custom-page-in-wordpress/
  2. &#13;
    &#13;
    <?php
    /*
    Template Name: Customer Details Page
    */
    get_header();
    ?>
    // your php file as it is.
    <?php get_footer(); ?>
    &#13;
    &#13;
    &#13;

    1. 现在使用&#34; customerdetails&#34;创建新页面wp admin&amp;中的名字选择&#34;客户详细信息页面&#34;在右侧栏和&amp;保存。

    2. 现在您的表单操作路径如下

    3. &#13;
      &#13;
      <form method="post" name="details" action="<?php echo get_site_url(); ?>/customerdetails">
      &#13;
      &#13;
      &#13;

      现在您的表单已提交&amp; customerdetails页面也接收帖子数据。