WordPress - 如何最小化我的WordPress查询?

时间:2013-02-02 20:21:55

标签: wordpress

我正在运行一个Wordpress查询。它查询一周中的几天,此时,我知道每天重复查询的唯一方法是运行查询7次,手动更改星期几。

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

我的代码:

<?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)的顺序显示: 00,02:00等)所以这个“订购”需要保持。我能看到的唯一方法就是每天分别查询,这就是为什么我有7个查询。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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