Как запросить диапазон таксономии

ПРИМЕЧАНИЕ. Ссылки будут работать. Если вы скопируете и вставьте их. (Я новичок, поэтому мне не разрешено добавлять многие ссылки на вопрос)

У меня есть несколько таксономий, которые я хотел бы запросить диапазон, например,

  • цена
  • возраст
  • марочный

Я нашел этот вопрос, который помог мне

Как передать параметры URL для расширенных таксономических запросов с несколькими терминами для одной пользовательской таксономии

С приведенными выше примерами я мог бы запросить возрастную таксономию в качестве примера для 10 и 20 лет

  • tax.jenswedin.com/age/10,20/
  • tax.jenswedin.com/?age=10,20

Это работает нормально.

Но если я хотел бы сделать запрос для целого ряда возрастов, например, форма 10-20, мне нужно было бы

  • tax.jenswedin.com/age/10,11,12,13,14,15,16,17,18,19,20/

И если я хотел бы сделать диапазон между 10-100, вы можете себе представить, что это не будет выглядеть так хорошо.

Поэтому я попытался поместить возрастные термины в подклассические термины так, чтобы структура была такой.

  • 11-20
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
  • 21-30

Сделав это, я теперь могу запросить подобное

  • tax.jenswedin.com/age/11-20/

И он будет работать, он будет показывать все возрасты в течение 11-20

Но этот способ довольно негибкий, мне нужно всего лишь диапазон от 15 до 20, это не сработает.

Что я хотел бы знать, есть ли способ, чтобы диапазон был динамичным и более гибким. Я знаю, что у @scribu был плагин (который больше не поддерживается), который имел поддержку диапазонов с min & max для настраиваемых полей. Но я не видел ничего подобного для таксономий.

  • chwisgi.com/?age-min=20&age-max=30

Любая помощь будет оценена по достоинству.

Вы можете выполнить запрос var и программно расширить числа между минимальным значением и максимальным значением.

Предполагая, что http://tax.jenswedin.com/age/10,20/ переписан на http://tax.jenswedin.com/?age=10,20 , затем (псевдокод)

$parts = explode(get_query_var('age'), ','); $min_val = $parts[0]; // Should be 10 in this example $max_val = $parts[1]; // Should be 20 in this example $range = range($min_val, $max_val); // http://php.net/manual/en/function.range.php /* Blah blah blah lets jump to where you need to query the terms */ $args = array( 'tax_query' => array( array( 'taxonomy' => 'age', 'field' => 'slug', 'terms' => $range ) ) ); $query = new WP_Query( $args ); 

Это хорошо работает для таких вещей, как числа. Но вы можете сделать цикл foreach над массивом $ range и сделать значения, в которых они вам нужны.