@partizzend

Не работает фильтр wordpress?

Всем привет, делал фильтр по этой инструкции wp-kama.ru/id_652/dinamicheskiy-arhiv-bloga-s-ispo... , и он не работает. У меня имеется тип товара tovary, таксономия proizvoditel, и таксономия kategorii.

вот код шаблона tpl_archive.php

<?php
/*
	Template Name: Шаблон архивов
*/
 ?>
  
<?php get_header(); ?>
 
 <style type="text/css" rel="stylesheet" >
#archive_browser > div { display: inline-block; padding-right: 10px; }
#archive_pot { min-height:150px; }
#archives_table { border-collapse:collapse; margin:15px 0 0 0; width:100%; }
#archives_table td { min-height:25px; padding:4px; border-top:1px solid #eee; border-bottom:1px solid #eee; }
</style>
 
 <script type="text/javascript">
 (function($){
	$(function(){

		$("#archive_browser select").change(function(){
			$("#archive_pot")
	.empty()
	.html("<div style='text-align:center; padding:30px;'><img src='<?php bloginfo('template_url') ?>/img/preloader.gif' /></div>");
	var dateArray = $("#month-choice").val().split("/");
			var y = dateArray[3];
			var m = dateArray[4];
			var c = $("#cat").val();
	$.post(
	"<?php bloginfo('template_url') ?>/archive_getter.php",
	{
		year : y,
		month : m,
		cat : c
	},
	function(data) {
		$("#archive_pot").html(data).animate({ height: $("#archives_table").height()+40 });
	}
	);
		});
	});
})(jQuery)
 </script>
 
<div id="archive_browser">
			<select id="month-choice">
				<?php $posts = get_posts( array(
					'post_type' => 'tovary',
				) );
				foreach($posts as $post){ setup_postdata($post);
				 echo '<option>'.get_the_term_list($post->ID,'proizvoditel').'</option>';
				}
				wp_reset_postdata(); ?>
			</select>
			<select>
				<?$posts = get_posts( array(
					'post_type' => 'tovary',
				) );
				foreach($posts as $post){ setup_postdata($post);
				 echo '<option>'.get_the_term_list($post->ID,'kategorii').'</option>';
				}
				wp_reset_postdata(); ?>
			</select>
</div>

<div id="archive_pot"></div>

<?php get_footer(); ?>


Код обработчика:

<?// подгружаем среду WP
require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');

// фильтруем POST данные, передаваемые этому файлу с Javascript
$year = htmlspecialchars(trim($_POST['year']));
$month = htmlspecialchars(trim($_POST['month']));
$cat = htmlspecialchars(trim($_POST['cat']));

?>
<table id="archives_table">
	<?php if( ($year=='') && ($month=='') && ($cat=='-1') ){
			echo "<tr><td style='text-align: center; font-size: 15px; padding: 5px;'>Пожалуйста, выберите дату/категорию из списка выше.</td></tr>";
		}
		else
		{
		// Получаем данные с помощью query_posts
		$args1 = array(
			'post_type' => 'tovary',
			'tax_query' => array(
			'relation' => 'OR',
			array(
				'taxonomy' => 'proizvoditel',
				'field' => 'id',
				'operator' => 'AND',
			),
			array(
				'taxonomy' => 'kategorii',
				'field' => 'id',
				'operator' => 'in',
			)
			)
		);
		query_posts( $args1 );
		// выводим данные в Цикле WordPress
		if( have_posts() ){ 
		while( have_posts() ){ 
		the_post(); ?>
			<tr>
			<td><a href='<?php the_permalink(); ?>'><?php the_title(); ?></a></td>
			<td><?php the_post_thumbnail(array (130, 130)); ?></td>
			</tr>
			<?php
		}
		}else 
			echo "<tr><td style='text-align: center; font-size: 15px; padding: 5px;'>Ничего не найдено.</td></tr>";
		} ?>
</table>


Результат - при любой комбинации - ничего не найдено. Помогите, пожалуйста, исправить код.
  • Вопрос задан
  • 1071 просмотр
Решения вопроса 1
@heartdevil
плыву как воздушный шарик
Привет.

Вы проблему декомпозируйте. Сразу так сложно понять, где и что не пашет. Возможно, что баги есть в нескольких местах, вы просто их не видите.
1)Начните отлаживать начиная с клиентской части. Протестируйте свои js функции. Отправляют ли они данные на сервер.
2)Если данные приходят в обработчик, протестируйте query_posts. Нужно тестировать на возвращение правильного набора данных.
3)Если query_posts возвращает правильные данные, тогда тестируйте логику вывода данных.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы