Сортировка статей WP_Query

Здравствуйте, подскажите, как настроить сортировку, при передаче сразу нескольких, меток и рубрик одновременно.

Вот мой вариант, к сожалению, он почему то не поддерживает передачу параметров массивом

        global $wp_query;
		$foo = $wp_query;  
		$args = array(
		'paged'           => $paged,
		'posts_per_page' => 10
		);
		$args[] = array('relation' => 'AND');   

		 if ($_GET['razdel']  != '' || $_GET['tag_genre'] != '' ) {                             
				$args = array(
						'category_name' => $_GET['razdel'],                     
						'tag' => $_GET['tag_genre'],    
						'paged'           => $paged,
						'posts_per_page' => 10
				);              
		} 

Параметры передаю вот таким образом

<select data-placeholder="Выберите жанр" class="chosen-select" multiple name='tag_genre[]'>
<option value="">Все жанры</option>
<option selected value="detektiv">Детективы</option>
<option  value="voennyj">Военные</option>
</select>

Ну и на всякий случай выведу полностью весь код, поскольку есть еще сортировка по таксономии

 global $wp_query;
	$foo = $wp_query;  
	$args = array(
	'paged'          => $paged,
	'posts_per_page' => 10
	); 
	$args[] = array('relation' => 'AND');   

	if ($_GET['razdel']  != '' || $_GET['tag_genre'] != '' ) {              
		$args = array(
			'category_name' => $_GET['razdel'],         
			'tag' => $_GET['tag_genre'],    
			'paged'          => $paged,
			'posts_per_page' => 10
		);      
	}

if (!empty($_GET['tax_strana'])) {              
   $args['tax_query'][] = array(                    
	  'taxonomy'  => 'strana', 
	  'field'     => 'slug', 
	  'terms' => $_GET['tax_strana'], 
);}

if (!empty($_GET['tax_god'])) {             
   $args['tax_query'][] = array(                    
	  'taxonomy'  => 'god', 
	  'field'     => 'slug', 
	  'terms' => $_GET['tax_god'], 
);} 

   $my_post = new WP_Query( $args );
Заметки к вопросу:
Kama 7 лет назад

По какому полю сортировать нужно? Сортировки по таксе в ВП нет насколько я знаю по метаполям есть. Может вам ен сортировка нужна, а вывести просто с учетом нескольких такс?

Твой код не стандартен, попробуй все и рубрики и метки сунуть в массив tax_query такса рубрик называется category такса меток post_tag

$args[] = array('relation' => 'AND'); - это вообще ерунда какая-то.

В общем приведи код в нормальный вид, убери лишние параметры category_name и tag - это все таксы, указывай их в tax_query

lethalblo 7 лет назад

Вот простой пример, как сюда передать нужную метку с помощью метода GET

<select data-placeholder="Выберите жанр" multiple name='tag_genre[]'>
    if (!empty($_GET['tag_genre'])) {           
		$args = array(                  
			'tag' => $_GET['tag_genre'],
		);      
	}

Тут вся проблема сводится к вот этим скобкам tag_genre[]

Вот такой вариант с таксой работает, но с меткой все сложнее

if (!empty($_GET['tax_strana'])) {              
   $args['tax_query'][] = array(                    
	  'taxonomy'  => 'strana', 
	  'field'     => 'slug', 
	  'terms' => $_GET['tax_strana'], 
);}

В общем я так и хочу вывести с учетом нескольких такс, тут проблема вот в чем, если отправлять данные name='tag_genre' тогда работает, но если отправить с вот такими скобками name='tag_genre[]' тогда не срабатывает, собственно эти скобки [] нужны для передачи сразу нескольких такс

Kama 7 лет назад

Говорю укажи все в tax_query параметре и метки тоже...

if (!empty($_GET['tag_genre'])) {              
   $args['tax_query'][] = array(                    
	  'taxonomy'  => 'post_tag', 
	  'field'     => 'slug', 
	  'terms' => $_GET['tag_genre'], 
);}
lethalblo 7 лет назад

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