按日期和自定义元排序帖子

问题描述 投票:0回答:1

我有 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"

wordpress custom-fields
1个回答
0
投票

我实际上会使用更强大的 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'); ?>

希望这能有所帮助。 玩得开心!

	

© www.soinside.com 2019 - 2024. All rights reserved.