Я знаю, что это старый пост, но у меня похожая проблема и я поделюсь с вами:
- Вы создаете запрос, затем вызываете второй запрос, но затем пытаетесь перемотать запрос. Это не то, как работает функция перемотки. Взгляните на документацию Rewind . Вы также говорите:
query_posts () просто сбрасывает мои результаты.
Тогда почему вы вызываете функцию перемотки сразу после нового запроса? Кроме того, если вы сбрасываете результаты, то почему это совершенно другой запрос? Это:
$s = get_query_var('s');
query_posts('s=' . $s . '&cat=164');
Не то же самое, что и это:
<?php query_posts('cat=-164'); ?>
<?php rewind_posts(); ?>
Чтобы получить результаты в 2 столбца для разных категорий, я сделал следующее: используйте только один цикл, не используйте перемотку, используйте get_the_category в выражении if в вашем цикле, например:
<?php
$s = get_query_var('s');
query_posts('s=' . $s . '&cat=164');
while (have_posts()) : the_post();
foreach(get_the_category() as $category){
if($category->name == "category name"){
//Concatenate to the left div
} else {
//concatenate to the right div
} ?>
Надеюсь, это поможет.