首页 > 解决方案 > 如何在 URL 中添加参数以在同一页面上显示不同的内容?

问题描述

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

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

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

但这会导致以下情况:

在此处输入图像描述

与其向当前页面添加参数,不如创建一个新页面。

我是否以正确的方式去做这件事?

谢谢。

标签: phpwordpressurlparameters

解决方案


您可以使用 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();

page 参数也可能是 wordpress 保留的参数,因此您可能想尝试不同的参数,例如成功,如果验证失败并重定向到错误,则另一个参数用于错误。

希望能帮助到你


推荐阅读