我有 2 个自定义元,一个用于活动的开始日期,一个用于活动的结束日期,我需要根据开始日期对活动进行排序,并在结束日期结束时将其删除。
元:
开始日期:date_de_levement 结束日期:date_de_fin
这是我的循环:
<?php query_posts( 'post_type=agenda&meta_key=date_de_fin&meta_compare=>=&meta_value=' . $todaysDate . '&orderby=meta_value&order=ASC'); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php
$date = get_field('date_de_fin');
$newDate = date("d/m/Y", strtotime($date)); ?>
只需更改查询,但我不知道如何将 2 个参数与元值一起使用。
&orderby=meta_value
需要类似于 &orderby="date_de_levenement"
我实际上会使用更强大的 WP_Query 对象来完成此任务。 更具体地说,您可以查看名为“自定义字段参数”的部分,并查看标题为“多个自定义字段处理”的示例。 您可以像这样创建参数数组:
$args = array(
'post_type' => 'agenda',
'meta_key' => 'date_de_levenvement',
'meta_query' => array(
array(
'key' => 'date_de_fin',
'value' => $todaysDate,
'compare' => '>='
)
),
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
$your_custom_query = new WP_Query($args);
// The Loop
if ( $your_custom_query->have_posts() ) {
while ( $your_custom_query->have_posts() ) {
$your_custom_query->the_post();
// your code goes here
}
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
meta_query
元素是一个
,这意味着如果您愿意,您甚至可以过滤多个元(自定义字段)属性。 请注意,我包含了
meta_key
元素。 这将允许您按开始日期排序。 而 key
元素中的 meta_query
元素将过滤您的结束日期帖子。 (在这种情况下,只有当其 agenda
大于或等于“今天”时,才会包含名为 date_de_fin
的帖子类型。[编辑]
请注意,“今天”日期应采用 SQL 格式,如下所示:
<?php $todaysDate = date('Y-m-d'); ?>
希望这能有所帮助。 玩得开心!