我創建了一個名爲「Events」的自定義帖子類型,我使用高級自定義字段(Wordpress插件)爲帖子添加自定義字段。一個自定義字段是事件的日期,我的目標是根據這個日期查詢帖子(存儲在數據庫中爲「yymmdd」),並且只顯示未來的事件。我已經接近了,但似乎無法弄清楚如何將過濾器與我已經編寫的代碼集成在一起。查詢帖子由Custom Meta和當前日期
我知道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; ?>
我真的很感激,如果有人能告訴我如何將過濾器添加到我的查詢以及如何使用自定義字段元對事件的日期,而不是發佈日期。我想我已經提供了所有需要的信息,但是如果我錯過了一些東西,請告訴我。謝謝!
這工作得很好!我修改了一下WP_Query,因爲我的理解是,這是更正確的方式來查詢Wordpress中的帖子,並正確地格式化日期(Ymd),但這是一個很棒的提示。謝謝! – jmp
歡迎您:) –