我在做其他事情?
对文件的完整路径。如果您的网站http://mysite.com
您在主页上,然后您在以下位置请求文件:http://mysite.com/result.php
. 如果您使用的是日期存档,您将在以下位置请求文件:http://mysite.com/2013/03/03/result.php
. 您想要的文件实际上位于http://mysite.com/wp-content/themes/theme-name/result.php
. 看到问题了吗?
Relative URLs do not work well in a WordPress context.
但我想说的是,即使要构建模板文件的完整URL,您仍然做错了。如果加载这样的文件,则不会加载任何WordPress核心,并且会出现未定义的函数错误。
在我看来,正确的方法是。。。
将请求发送到包含表单的同一模板文件。
<form action="<?php the_permalink(); ?>" method="post">
该特定代码仅在某些情况下有效,因此您可能需要使用
site_url()
, 例如通常可以省略action属性(正如Milo所提示的那样)。
您还可以将函数挂接到template_redirect
或wp_head
然后在那个钩子上处理表单或者,使用AJAX API处理表单提交。当然,这也意味着一些Javascript如果表单出现在多个页面上,则需要选项2或3中的一个。否则,请使用第一个选项。
如果需要表单显示在一个页面上,结果显示在另一个页面上,则需要为每个组件提供自定义页面模板,并且需要create a page for the form and another for the results via the "Pages" section of the WordPress backend.