2013-02-02 26 views
0

我有一个Wordpress查询,我正在运行。它通过一周的几天进行查询,目前,我知道每天重复查询的唯一方法是运行查询7次,手动更改星期几。WordPress - 如何最小化我的WordPress查询?

有没有办法只运行一次查询?

我的代码:

<?php 
$args=array(
    'taxonomy' => 'day', 
    'term' => 'monday', 
    'post_type' => 'schedule', 
    'meta_key' => 'tr_show_time', 
    'orderby' => 'tr_show_time', 
    'order' => 'asc', 
    'posts_per_page' => 24, 
    'caller_get_posts'=> 1 
); 
$my_query = null; 
$my_query = new WP_Query($args); 
if($my_query->have_posts()) { 
while ($my_query->have_posts()) : $my_query->the_post(); ?> 

My code to execute for the schedule. 

<?php endwhile; } wp_reset_query(); ?> 

因此,在这一刻,我必须改变每个查询的“术语”,并且具有相同的查询7倍。一定会有更好的办法。

如果有更好的方法,有人可以回答并教我答案吗?

感谢

编辑:我只想补充一点,在安排每个“天”有24个项目,一个一天的每一个小时,他们按顺序显示,从00:00至24:00( 00:00,01:00,02:00等),因此需要保留此“排序”。我能看到做到这一点的唯一方法是每隔一天查询一次,因此我有7次查询。

回答

1

阅读更多的信息,我解决了它自己:

<?php 
date_default_timezone_set('America/New_York'); 
$d=date("D"); 
$current_day = date ('l'); 
?> 
    <ul> 
     <?php 
$args=array(
    'taxonomy' => 'day', 
    'term' => $current_day, 
    'post_type' => 'schedule', 
    'meta_key' => 'tr_show_time', 
    'orderby' => 'tr_show_time', 
    'order' => 'asc', 
    'posts_per_page' => 24, 
    'caller_get_posts'=> 1 
); 
$my_query = null; 
$my_query = new WP_Query($args); 
if($my_query->have_posts()) { 
while ($my_query->have_posts()) : $my_query->the_post(); ?> 
     <?php $show_name = get_post_meta(get_the_ID(), 'tr_show_name', true); ?> 
     <?php $show_time = get_post_meta(get_the_ID(), 'tr_show_time', true); ?> 

my code here. 

     <?php endwhile; } wp_reset_query(); ?> 
    </ul> 
0

尝试使用tax_query参数

$args = array(
    'tax_query' => array(
     array(
      'taxonomy' => 'day', 
      'field' => 'slug', 
      'terms' => array('monday', 'tuesday', 'wednesday') 
     ) 
    ), 
    'post_type' => 'schedule', 
    'meta_key' => 'tr_show_time', 
    'orderby' => 'tr_show_time', 
    'order' => 'asc', 
    'posts_per_page' => 24, 
    'caller_get_posts'=> 1 
); 

有关taxonomy queries

+0

这是不是打乱所有的物品放在一起?每周的每一天都有24件物品,每天一个小时。使用术语数组,是不是将所有的“00:00”项目放在一起,然后把所有的“01:00”项目放在一起等等? –

+0

嗯,你从来没有提到,从一开始......但我会说,先试试看,看看它吐出了什么。 – Jrod