0

我有一个正在运行的 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、02 :00 等),因此需要维护此“排序”。我能看到的唯一方法是每天单独查询,因此我有 7 个查询。

4

2 回答 2

1

I solved it myself:

<?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>
于 2013-02-02T21:32:11.897 回答
0

Try using the tax_query parameter

$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
);

For more information read up on taxonomy queries

于 2013-02-02T20:33:30.707 回答