2011-04-30 61 views
0

这是我的WordPress查询,但不是wordpress相关的问题。这表明,有meta_key作为extra1和meta_value为测试职位如何结合这个php语句来获得多个变量输入的结果?

<?php $customkey1 = extra1; ?> 
<?php $customvalue1 = test; ?> 
<?php query_posts('meta_key=' . $customkey1 . '&meta_value=' . $customvalue1 . ''); ?> 
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

<?php the_title(); ?> 

<?php endwhile; ?> 
<?php endif; ?> 

我的问题是我怎么还显示,有extra1作为metakey和test作为metavalue的职位,但也有extra2职位作为metakey和test2作为同一查询中的元值。两个或更多变量的组合。

+1

我没有时间回答这个问题,只是一个评论:你为什么要把每行? – gd1 2011-04-30 21:08:51

+0

我很确定这是一个WordPress的特定问题,因为query_posts是一个wordpress函数。 – 2011-04-30 21:09:27

+0

可能是因为它是一个与Html混合的WordPress主题文件。不过,不是说你应该那样做。 – rzetterberg 2011-04-30 21:11:17

回答

0

那么你想结合两个查询的结果? Check this out您可能只需制作两个查询对象并将其组合即可。

喜欢的东西(注意,我没有安装的WordPress,也不使用WordPress但假设其API是不是骗人的。):

<?php 

// The Query 
$the_query = new WP_Query($args); 
$the_second_query = new WP_Query($args); 

// The Loop 
while ($the_query->have_posts()) : $the_query->the_post(); 
    echo '<li>'; 
    the_title(); 
    echo '</li>'; 
endwhile; 

// The Second Loop 
while ($the_second_query->have_posts()) : $the_second_query->the_post(); 
    echo '<li>'; 
    the_title(); 
    echo '</li>'; 
endwhile; 

// Reset Post Data 
wp_reset_postdata(); 
?> 

注:这是丑陋的,丑陋的,并会工作,但在大多数情况下应该被专业人士认为是错误的。更优雅的是,至少我会用一个函数来解析帖子。最优雅的是,我会执行其他地方的建议,将组合查询封装在MySQL位中。但鉴于操作员的知识,这似乎是快速解决此问题的“最佳方法”,希望只有一次。 (重复应用这种方法会使它变成一个混乱的噩梦)

+0

即使用您想要的每个查询创建一个新的WP_Query对象。浏览每个查询并将其结果添加到包含所有您想要的帖子的单个数组中。然后输出帖子。 – 2011-04-30 21:13:31

+1

用WP_Query对象编写自定义查询可能会更好,它直接在mysql中进行选择,而不必将它们放在一起。 – rzetterberg 2011-04-30 21:14:40

+0

感谢您的回复..你可以给我发一个你正在接受的例子吗? – EnexoOnoma 2011-04-30 21:20:30