我正在尝试设置包含两列的搜索结果页面。第一列将显示除一个(图库)之外的所有类别的结果,第二列将仅显示图库类别。
query_posts()
只是重置我的结果。这是我到目前为止所得到的。破:
<?php
$s = get_query_var('s');
query_posts('s=' . $s . '&cat=164');
?>
<?php
// First Loop
?>
<div class="contentLeft">
<ul class="postListSmall related">
<?php while (have_posts()) : the_post(); ?>
[do stuff]
<?php endwhile; ?>
<?php
// Second Loop
?>
<?php query_posts('cat=-164'); ?>
<?php rewind_posts(); ?>
<?php while (have_posts()) : the_post(); ?>
[do stuff]
<?php endwhile; ?>
<?php else : ?>
[do stuff]
<?php endif; ?>
怎么办?
答案 0 :(得分:0)
我知道这是一个老帖子,但我遇到了类似的问题,并认为我会分享:
query_posts()只是重置我的结果。
那你为什么要在新查询后立即调用倒带功能呢?此外,如果您正在重置结果,那么为什么它完全是另一个查询?这样:
$s = get_query_var('s');
query_posts('s=' . $s . '&cat=164');
与此不一样:
<?php query_posts('cat=-164'); ?>
<?php rewind_posts(); ?>
要获得不同类别的2列结果,我执行了以下操作:仅使用一个循环,不使用倒带,在循环中的if语句中使用get_the_category,例如:
<?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
} ?>
希望这有帮助。