Как сформировать массив для запроса по URL с несколькими параметрами - PullRequest
0 голосов
/ 20 января 2019

Это на второй странице фильтра, который я делаю, на первой странице пользователь может установить флажки.Значения флажков передаются на вторую страницу по параметрам в URL: filter-result/?mytaxonomy=myterm&mytaxonomy=myotherterm Как сформировать массив этих данных для использования в (WP) запросе?

Я могуотобразить данные из URL, выполнив следующее:

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

Я также могу запрашивать сообщения (custompost-type):

    $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' => array( *inside here* ).

Когда я использую print_r ($_GET['mytaxonomy']); результат равен Array ( [0] => myterm ), все верно.Я думаю, мне просто нужно сформировать массив в 'a', 'b' для работы в запросе WP.Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Для других, которые могут задать вопрос, как это сделать: это было легко исправить.Поскольку, как предложил @Wodka, я сформировал ссылку с помощью [] скобок, например: <input type="checkbox" name="mytaxonomy[]" value="myterm">, а поскольку $_GET['mytaxonomy'] выводит сам array(), я смог просто вставить его, как показано ниже.

'terms' => $_GET['mytaxonomy'],

Что привело к:

$query = new WP_Query( array(
    'post_type' => 'mycustomposttype',
    'tax_query' => array(
        array(
            'taxonomy' => 'mytaxonomy',
            'field' => 'slug',
            'terms' => $_GET['mytaxonomy'],
            'operator' => 'AND',
        ),
    ),
) );
0 голосов
/ 20 января 2019

Вы можете передавать массив в php как filter-result/?mytaxonomy[]=myterm&mytaxonomy[]=myotherterm - синтаксис, который вы использовали, из мира java (и не применим к php)

...