我当前正在做一个WordPress项目,在其中一个页面上,我在该页面上有一个表单,用于检查用户输入的数据是否在数据库中。提交后,我想向同一页面的URL(即?page = 1)添加参数,并根据URL的参数显示不同的内容。
我尝试通过表单的action属性添加参数。
<form action="form.php?page=1" method="post" id="orderinfo">
但这会导致以下情况:
似乎没有在当前页面添加参数,而是在创建新页面。
我什至会按照正确的方式做这件事吗?
谢谢。
答案 0 :(得分:0)
您可以使用wordpress template_redirect钩子来实现。在您的functions.php文件中,您可以添加:
add_action('template_redirect', 'form_proccess');
function form_proccess() {
if( isset($_POST['submit']) ) {
// some validation here
wp_safe_redirect( get_permalink().'?page=1'); exit;
}
}
,然后在表单标签中将操作设置为空字符串或the_permalink();
页面参数也可能是保留的wordpress参数,因此您可能想尝试不同的方法,例如成功,如果验证失败并重定向到错误,则尝试错误。
希望有帮助
答案 1 :(得分:0)
在Wordpress中,您需要注册自定义查询字符串变量,以便Wordpress相应地对待它们。
您可以通过使用过滤器来做到这一点:
function additional_query_vars($vars) {
$vars[] .= 'your_custom_variable';
return $vars;
}
add_filter( 'query_vars', 'additional_query_vars' );
因此,现在您已经添加了它们,并且Wordpress意识到了它们,您可以使用get_query_var
在页面或其他地方检索它们。
例如:
$my_var= get_query_var('your_custom_variable');