【问题标题】:How to form an array for query from URL with multiple parameters如何形成一个数组以从具有多个参数的 URL 进行查询
【发布时间】:2019-06-13 23:41:09
【问题描述】:

这是我正在制作的过滤器的第二页,在第一页上,用户可以选择复选框。复选框的值通过 URL 中的参数传递到第二页: filter-result/?mytaxonomy=myterm&mytaxonomy=myotherterm 如何形成此数据的数组以在 (WP) 查询中使用?

我可以通过这样做来显示来自 URL 的数据:

    if( isset( $_GET['mytaxonomy'] ) ){
        foreach( $_GET['mytaxonomy'] as $term ){
            echo $term . '<br>';
        }
    }

我还可以查询帖子(自定义帖子类型):

    $query = new WP_Query( array(
        'post_type' => 'mycustomposttype',
        'tax_query' => array(
            array(
                'taxonomy' => 'mytaxonomy',
                'field' => 'slug',
                'terms' => array( 'myterm', 'myotherterm' ),
                'operator' => 'AND',
            ),
        ),
    ) );

我想将数据从$_GET['mytaxonomy'] 传递到'terms' =&gt; array( *inside here* )

当我使用print_r ($_GET['mytaxonomy']); 时,结果是Array ( [0] =&gt; myterm ),完全正确。我想我只需要将数组形成为'a', 'b' 即可在 WP 查询中工作。我怎样才能做到这一点?

【问题讨论】:

    标签: php sql arrays wordpress url-parameters


    【解决方案1】:

    对于可能质疑如何解决此问题的其他人:这是一个简单的解决方法。因为正如@Wodka 所建议的那样,我用 [] 括号形成了链接,如下所示:&lt;input type="checkbox" name="mytaxonomy[]" value="myterm"&gt; 并且因为$_GET['mytaxonomy'] 本身输出了array(),所以我可以像下面那样将其放入。

    'terms' =&gt; $_GET['mytaxonomy'],

    导致:

    $query = new WP_Query( array(
        'post_type' => 'mycustomposttype',
        'tax_query' => array(
            array(
                'taxonomy' => 'mytaxonomy',
                'field' => 'slug',
                'terms' => $_GET['mytaxonomy'],
                'operator' => 'AND',
            ),
        ),
    ) );
    

    【讨论】:

      【解决方案2】:

      您可以像filter-result/?mytaxonomy[]=myterm&amp;mytaxonomy[]=myotherterm 一样将数组传递给 php - 您使用的语法来自 java 世界(不适用于 php)

      【讨论】:

      • 这实际上是我形成 URL 的方式。在第一页,有一个表格:&lt;label&gt;&lt;input type="checkbox" name="mytaxonomy[]" value="myterm"&gt;myterm&lt;/label&gt;
      猜你喜欢
      • 2021-07-02
      • 1970-01-01
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多