7ответ(ов) в теме
gora0870
не в сети 4 года
На сайте с 31.07.2014
Участник
Тем 86
Сообщения 383
1
14:16

Здравствуйте!
Прежде хочу выразить благодарность за эти статьи:

Вы не можете просматривать опубликованные ссылки

Вы не можете просматривать опубликованные ссылки

У меня вопрос по работе страницы архива.Пытаюсь организовать вывод заданий с учетом значения произвольного поля. Сам не программист и учусь на ходу. Пробовал и на странице архива шаблона и на специально созданной странице архива-task. На первый взгляд вроде делаю правильно.
На пример: Если использую new WP_Query

if ( have_posts() ) : 
			 $city = $userInfo->city->name; // переменная, для значения 'value' 
				  if ($city)  {
			 global $post;
		$args = array(
		'post_type' => 'task',
		'meta_query' => array(
		array(
			'meta_key' => 'gorod',
			'value' => $city,
			'compare' => '='
		)
	)
);

$query = new WP_Query($args);
}	
	/* Start the Loop */
while ( $query->have_posts() ) :	$query->the_post();
	get_template_part( 'template-parts/post/excerpt' );
				wp_reset_postdata();

Результат - осуществляется вывод постов с заданным значением, но перестает работать фильтр поиска и не работают таксономии в пределах страницы архива . (Правда когда я создал отдельную страницу archive-task.php, таксономии так на странице archive-task.php же не работают, но перенаправляют на archive.php)
Аналогичная ситуация с query_posts и get_posts,
при этом, с get_posts добавляется дополнительная проблема в виде дублирования постов.

Пожалуйста поясните, можно в общих чертах. Возможно-ли вносить изменения в работу цикла на странице архива, что-бы сохраняли свою работу установленные фильтры, или для этого необходимо вносить изменения и в само дополнение? И имеет ли смысл создавать отдельную страницу архива при наличии архива шаблона?

0
Вова (Otshelnik-Fm)
не в сети 1 день
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
2
14:30

И имеет ли смысл создавать отдельную страницу архива при наличии архива шаблона?

- это равнозначные страницы. С учетом того что archive-task.php подключается раньше и работает только с архивом task-типа записи.
Если кастомизировать и вносить изменений вы будете много - то лучше конечно создать отдельный файл archive-task.php. А если вписываете только вызов фильтра - то смысла в ней нету.

p.s. по вашему основному вопросу мне ответить по делу нечего. подозреваю что фильтр биржи отправляет свои данные в другой обработчик, где ваш query не виден, а может и другая причина.

0
gora0870
не в сети 4 года
На сайте с 31.07.2014
Участник
Тем 86
Сообщения 383
3
21:09

<
p.s. по вашему основному вопросу мне ответить по делу нечего. подозреваю что фильтр биржи отправляет свои данные в другой обработчик, где ваш query не виден, а может и другая причина.

Вопрос к Андрею, так решение надо искать в дополнении, или дополнение не причем и это мои не правильные действия?

0
Андрей CS
не в сети 18 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
4
21:14

данные с прилагаемого фильтра формируют массив и отправляют его в функцию query_posts, влияя на цикл вывода заданий, так что ваши манипуляции с изменением цикла через свой скрипт по сути проходят параллельно и результат работы выборки в таком режиме может быть непредсказуемым.
Правильнее будет вообще убрать текущий фильтр и написать новый под свою задачу.

1
gora0870
не в сети 4 года
На сайте с 31.07.2014
Участник
Тем 86
Сообщения 383
5
21:17

Спасибо за пояснение.

0
gora0870
не в сети 4 года
На сайте с 31.07.2014
Участник
Тем 86
Сообщения 383
6
21:28

Полагаю плагин Posts Filter Generator для этих целей подойдет?

А что касается таксономий task-subject? они ведь тоже не работают с моим циклом на текущей странице архива (не фильтруют). Только когда создал страницу архива-таск, они стали срабатывать (правда не та странице арх-таск, а перенаправляют и фильтруют на страницу архива темы).
Здесь в цикл нужно дописывать нечто подобное ( 'task-subject' => 5,6)

0
gora0870
не в сети 4 года
На сайте с 31.07.2014
Участник
Тем 86
Сообщения 383
7
09:04

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

данные с прилагаемого фильтра формируют массив и отправляют его в функцию query_posts, влияя на цикл вывода заданий, так что ваши манипуляции с изменением цикла через свой скрипт по сути проходят параллельно и результат работы выборки в таком режиме может быть непредсказуемым.
Правильнее будет вообще убрать текущий фильтр и написать новый под свою задачу.

Спасибо за подсказку.
Разобрался. Переписал фильтр, назначил скрытое условие по фильтрации с учетом $city и создал отдельную страницу для вывода результата поиска. Все работает.

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