我创建了一个名为“事件”的自定义帖子类型,并且我正在使用高级自定义字段(Wordpress 插件)将自定义字段添加到帖子中。一个自定义字段是事件的日期,我的目标是根据该日期(在数据库中存储为“yymmdd”)查询帖子,并且只显示未来的事件。我已经接近了,但似乎无法弄清楚如何将过滤器与我已经编写的代码集成。
我知道 Wordpress Codex 在这里(http://codex.wordpress.org/Class_Reference/WP_Query)有这方面的信息,但是作为 PHP 的新手,我不知道如何使它与我的自定义字段一起工作数据。这是 Wordpress 代码:
// Create a new filtering function that will add our where clause to the query
function filter_where( $where = '' ) {
// posts for March 1 to March 15, 2010
$where .= " AND post_date >= '2010-03-01' AND post_date < '2010-03-16'";
return $where;
}
add_filter( 'posts_where', 'filter_where' );
$query = new WP_Query( $query_string );
remove_filter( 'posts_where', 'filter_where' );
但我不确定如何将它与我当前的查询集成,或者如何使用我的日期字段作为查询值而不是发布日期。以下是我到目前为止所写的。
<?php
$args = array(
'post_type' => 'events',
'posts_per_page' => 4,
'meta_key' => 'event_date',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post();
?>
<h1><?php the_title()</h1>
<?php $eventdate = date_create(get_field('event_date')); ?>
<small><?php echo date_format($eventdate,'M d'); ?></small>
<?php endwhile; endif; ?>
如果有人能告诉我如何将过滤器添加到我的查询以及如何将自定义字段元用于事件日期而不是发布日期,我将不胜感激。我想我已经提供了所有需要的信息,但如果我错过了什么,请告诉我。谢谢!