QUERY_POST当前日期的元密钥

时间:2010-11-17 作者:idontknowhow

如何使用自定义字段查询当前日期月份的帖子:

这是我的密码

    <?php
    global $wp_query;
    $event_month = get_post_meta($wp_query->post->ID, \'eventdate\', true); //format in db 11/17/2010
    $event_month = date("n"); //A numeric representation of a month, without leading zeros (1 to 12)
    $today= getdate(); ?>

    <?php query_posts(\'meta_key=\'.$event_month .\'&meta_compare&meta_value=\' .$today["mon"]);?>

<?php while (have_posts()): the_post(); ?>
    <div class="event-list-txt">
      <h4><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark">
        <?php the_title(); ?>
        </a></h4>
      <?php the_content(); //Display the content?>
    </div>
<?php endwhile; ?>
<?php wp_reset_query();?>
但它不显示输出。我要显示的是当月的事件列表。。例如,如果是11月,它将显示11月的事件列表,当12月到来时,它将显示12月的事件列表,依此类推。与当前日期相比,事件列表日期具有如下自定义字段格式:2010年11月17日

以下是额外的预期输出

当前日期为11月,事件列表应如下所示:

+-----------------------+-------------+
| Event Name            | Date        |
+-----------------------+-------------+
| ABC Market opening    | 11/18/2010  | 
| ABC Market Seminar    | 11/25/2010  | 
| ABC Market Promo      | 11/29/2010  | 
+-----------------------+-------------+
谢谢各位

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

meta_key 值应为自定义字段的名称。我怀疑您是否有以每个月命名的字段,所以很可能应该是eventdate.

meta_compare 应具有指定比较运算符的值,或者省略该值,并默认为= 那样的话

因此,您无法仅在等于月的条件下查询完整的事件日期。我不确定,但在我看来,您要么为月/年添加单独的字段(没有日期),要么使用posts_where 滤器

看见Time Parameters, Custom Field Parameters 在Codex中获取更多文档。

SO网友:aydincavadli

Try This:

$archive_year  = get_the_time(\'Y\'); 
$archive_month = get_the_time(\'m\'); 
$archive_day   = get_the_time(\'d\');
query_posts(\'year=\' .$archive_year .\'&monthnum=\' .$archive_month .\'&day=\' .$archive_day); 
结束

相关推荐

为什么WordPress从MySQL获得的帖子来自虚拟主机名,而不是直接主机名?

我正在Mac上开发一个WordPress网站,运行OS X 10.6.4。在开发过程中,我使用OS X的内置Apache服务器在本地运行该站点。我已经安装了WordPress,并将其连接到OS X的MySQL,没有问题。该网站似乎运行良好,我可以发布、编辑等。WordPress安装在一个名为~/Sites/mysite.dev.我还定制了.hosts 文件和Apachehttpd-vhosts.conf 文件,以重定向对mysite的请求。请转到这个文件夹。所以当我进去的时候http://mysite.d