Пользовательская функция сортировки запросов WordPress - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь разрешить пользователям сортировать пользовательский запрос WP, но я не могу заставить его работать, поэтому, возможно, кто-то знает, что я делаю неправильно?

Я использую это как пользовательский запрос:

<?php
    $args = array(
        'post_type'        => 'vacation',
        'meta_key'          => get_query_var('meta_key'),
        'orderby'           => 'meta_value',
        'order'             => get_query_var('order'),
        'posts_per_page'   => -1
    );

$query = new WP_Query( $args ); 
while ( $query->have_posts() ) { $query->the_post(); ?>

И я использую это как HTML-ссылки для заказа:

<a href="?meta_key=bedrooms?order=asc">Bedrooms ASC</a>
<a href="?meta_key=bedrooms?order=desc">Bedrooms DESC</a>

URL изменится, но я не вижу порядка расположения спален от высокого к низкому или от низкого к высокому, когда я нажму одну из двух ссылок.

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

В вашем HTML href неверен. Вы должны использовать & когда вы передаете несколько параметров. Как это:

<a href="?meta_key=bedrooms&order=asc">Bedrooms ASC</a>

<a href="?meta_key=bedrooms&order=desc">Bedrooms DESC</a>

0 голосов
/ 27 марта 2019

Если ваше мета-значение имеет целочисленный тип, просто измените "orderby" => "meta_value" на "meta_value" => "meta_value_num".

<?php
$args = array(
    'post_type'        => 'vacation',
    'meta_key'          => get_query_var('meta_key'),
    'orderby'           => 'meta_value_num',
    'order'             => get_query_var('order'),
    'posts_per_page'   => -1
);

$query = new WP_Query( $args ); 
while ( $query->have_posts() ) { $query->the_post(); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...