查询类别的主循环时搜索中断

时间:2011-10-25 作者:laras126

在我的主题中,我为用户提供了一个选项,可以设置一个“博客类别”,在index.php 使用WP_Query:

$shortname = get_option(\'of_shortname\');
$cat_option = get_option($shortname.\'_cats_in_blog\');
$catid = get_cat_ID($cat_option);
$paged = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1;
$args = array(
   \'cat\' => $catid,
   \'paged\' => $paged
);

$query = new WP_Query( $args );

// Queries fine, but search stops working       
while ( $query->have_posts() ) : $query->the_post();

// Loop stuff here

endwhile;
这很好,但搜索小部件坏了。我还尝试使用query_posts 但这有相反的效果;查询的类别未显示,但搜索仍起作用。下面是代码:

$shortname = get_option(\'of_shortname\');
$cat_option = get_option($shortname.\'_cats_in_blog\');
$catid = get_cat_ID($cat_option);

// Search is working, querying is not
global $query_string; // required
$posts = query_posts($query_string.\'&posts_per_page=3&cat=$catid\');

while ( $query->have_posts() ) : $query->the_post();

// Loop stuff here

endwhile;
我检查了$catid 变量,它将返回应该返回的内容。我是以错误的方式还是在错误的地方提出质疑?非常感谢您的帮助,提前感谢。

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

对于第二个示例,我认为您启动循环的方式不正确。你在声明$query, 哪些还没有全球化?

// Search is working, querying is not
global $query_string; // required
$posts = query_posts($query_string.\'&posts_per_page=3&cat=$catid\');

while ( $query->have_posts() ) : $query->the_post();
尝试忽略$query 从你的循环开始?

// Search is working, querying is not
global $query_string; // required
$posts = query_posts($query_string.\'&posts_per_page=3&cat=$catid\');

while ( have_posts() ) : the_post();
。。。看看这是否有区别?

对于第一个示例,“搜索小部件中断”是什么意思?

EDIT

哇,我完全忽略了这一点:您将变量作为字符串传递:

$posts = query_posts($query_string.\'&posts_per_page=3&cat=$catid\');
请尝试以下操作:

$posts = query_posts( $query_string . \'&posts_per_page=3&cat=\' . $catid );
。。。所以你的$catid 正确分析。

结束

相关推荐

Custom post type admin search

是否可以在自定义帖子类型元字段中搜索?我有帖子,有很多自定义的元字段。默认情况下,Wordpress仅在标题和内容中搜索。我怎样才能改变它?If you didn\'t understand what I am saying, please take a look at my screenshot.