如何在URL中添加参数以在同一页面上显示不同的内容?

时间:2018-09-07 08:25:44

标签: php wordpress url parameters

我当前正在做一个WordPress项目,在其中一个页面上,我在该页面上有一个表单,用于检查用户输入的数据是否在数据库中。提交后,我想向同一页面的URL(即?page = 1)添加参数,并根据URL的参数显示不同的内容。

我尝试通过表单的action属性添加参数。

<form action="form.php?page=1" method="post" id="orderinfo">

但这会导致以下情况:

enter image description here

似乎没有在当前页面添加参数,而是在创建新页面。

我什至会按照正确的方式做这件事吗?

谢谢。

2 个答案:

答案 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');