【问题标题】:How to add parameters to URL to show different content on the same page?如何在 URL 中添加参数以在同一页面上显示不同的内容?
【发布时间】:2018-09-07 08:25:44
【问题描述】:

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

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

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

但这会导致以下结果:

这里没有给当前页面添加参数,而是创建了一个新页面。

我的做法是否正确?

谢谢。

【问题讨论】:

    标签: php wordpress url parameters


    【解决方案1】:

    您可以使用 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 保留参数,因此您可能想尝试不同的参数,例如成功,如果验证失败并重定向到错误,则另一种错误。

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      在 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');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-09
        • 1970-01-01
        相关资源
        最近更新 更多