Главная WordPress WordPress: Вопросы и ответы Фильтр по произвольным полям
7 ответ(ов) в теме
n0wayback
не в сети 2 месяца
На сайте с 11.10.2017
Участник
Тем 1
Сообщения 4
1
02:33

Доброго времени суток.
Есть форма с select, например, возраст
Выпадают варианты: 18-25 , 26-30
Как передать в функцию или эти значения сразу, чтоб их сравнить? Или сделать так: если выбран определенный select делать сравнение исходя из того, какой был выбран.
И если делаю поиск по checkbox и выбираю несколько чекбоксов сразу, поиск идёт только по одному из них.
Также наблюдается проблема с пагинацией

function go_filter() {
	$args = array();
	$args['meta_query'] = array('relation' => 'AND');
    $query = new WP_Query( array(
     'post_type' => 'people',
    ) );
    
 
    
	if (@$_GET['new'] != '') {
		$args['meta_query'][] = array(
			'key' => 'new_profile',
			'value' => $_GET['new']
			);
	}


	if (!empty($_GET['m_age'])) { // вот в этой части нужно делать сравнение
			$args['meta_query'][] = array(
				'key' => 'age',
				'value' => '26'
			);
		}


		if (!empty($_GET['body'])) { 
			$args['meta_query'][] = array(
				'key' => 'body',
				'value' => array($_GET['body'])
			);
		}
			





	query_posts(array_merge($args,$query->query));
} 

Редакции сообщения
12.10.2017 02:34n0waybackПричина: не указано
0
Андрей CS
не в сети 17 минут
На сайте с 30.11.-0001
Администратор
Тем 69
Сообщения 8517
2
07:40

Не пойму в чем проблема, сравнивайте полученные с формы значения полей

0
n0wayback
не в сети 2 месяца
На сайте с 11.10.2017
Участник
Тем 1
Сообщения 4
3
13:51

Андрей CS сказал(а)
Не пойму в чем проблема, сравнивайте полученные с формы значения полей

Каким образом? Если из формы я могу получить value, например? Я же не могу в value написать 2 числа и сравнить их

0
Андрей CS
не в сети 17 минут
На сайте с 30.11.-0001
Администратор
Тем 69
Сообщения 8517
4
13:58

n0wayback сказал(а)
Я же не могу в value написать 2 числа и сравнить их

конечно нет, надо получать два разных значения и сравнивать их, или вопрос задан некорректно, я не понял, что требуется.
Если надо из строки "16-25" получить два значения и произвести выборку по ним, то это другое дело. Уточните свой вопрос.

0
n0wayback
не в сети 2 месяца
На сайте с 11.10.2017
Участник
Тем 1
Сообщения 4
5
16:14

Андрей CS сказал(а)

n0wayback сказал(а)
Я же не могу в value написать 2 числа и сравнить их

конечно нет, надо получать два разных значения и сравнивать их, или вопрос задан некорректно, я не понял, что требуется.
Если надо из строки "16-25" получить два значения и произвести выборку по ним, то это другое дело. Уточните свой вопрос.

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

0
Otshelnik-Fm
не в сети 26 минут
На сайте с 27.01.2013
Модератор
Тем 22
Сообщения 8656
6
16:19

Не вижу проблемы на пхп разделить приходящее значение

$in1 = '16-25';
$m1 = explode('-',$in1);

0
n0wayback
не в сети 2 месяца
На сайте с 11.10.2017
Участник
Тем 1
Сообщения 4
7
21:11

Otshelnik-Fm сказал(а)
Не вижу проблемы на пхп разделить приходящее значение

$in1 = '16-25';
$m1 = explode('-',$in1);

А с чекбоксами и пагинацией как решить проблему? С примененным фильтром пагинация вообще не работает, а в основном выводе постов работает только 2 страница, дальше 404.

<?php 
	    $paged = get_query_var('paged') ? get_query_var('paged') : 1;
		$args = array(
	    'post_type' => array( 'people' , 'men' ),
		'publish' => true,
		'paged' => $paged,
	);
  
 query_posts($args);

		if ( have_posts() ) : ?>

			<?php if ( is_home() && ! is_front_page() ) : ?>
				<header>
					<h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
				</header>
			<?php endif; ?>

		<?php if ($_GET && !empty($_GET)) {
	go_filter();
} ?>

			<?php
			// Start the loop.
			while ( have_posts() ) : the_post();

Вывод сделан таким образом.

0
Вы не имеете права на публикацию сообщений в этой теме