我使用高級自定義字段親來存儲和顯示有關房地產銷售日期的信息。這些保存在中繼器字段中,字段中的每一行都有一個開始時間,結束時間和日期。我需要在中繼器字段行中顯示按日期排序的信息。目前它是按修改日期排序的。我嘗試了幾種解決方案,但似乎沒有任何工作需要我做。高級自定義字段WordPress的中繼器字段排序依據日期
這是我目前:
<?php
$latestes = new WP_Query(
array(
'post_type' => 'estate-sales',
'post_status' => 'publish',
'posts_per_page' => 10,
'orderby' => 'modified',
'order' => 'DESC'
)
);
while ($latestes->have_posts()) : $latestes->the_post();
echo '<li class="frontpage-esale"><a href="';
the_permalink();
echo '">';
the_title();
echo ' ';
$rowses = get_field('estate_sale_dates');
$first_row = $rowses[0];
$first_row_date = $first_row['es-date'];
$first_row_start = $first_row['es-start-time'];
$first_row_end = $first_row['es-end-time'];
echo ' - ';
if ($first_row_date) {
echo date('F j, Y',strtotime($first_row_date));
}
else {
echo 'Sale Dates TBA';
}
endwhile;
wp_reset_query();
?>
一個解決方案搜索時最常見的回答是做這樣的事情:
$latestes = new WP_Query(
array(
'post_type' => 'estate-sales',
'post_status' => 'publish',
'posts_per_page' => 10,
'orderby' => 'modified',
'order' => 'DESC'
)
);
while ($latestes->have_posts()) : $latestes->the_post();
$repeater = get_field('estate_sale_dates');
foreach($repeater as $key => $row)
{
$column_id[ $key ] = $row['es-date'];
}
array_multisort($column_id, SORT_ASC, $repeater);
foreach($repeater as $row) {
echo '<li class="frontpage-esale"><a href="';
the_permalink();
echo '">';
the_title();
echo ' ';
$rowses = get_field('estate_sale_dates');
$first_row = $rowses[0];
$first_row_date = $first_row['es-date'];
$first_row_start = $first_row['es-start-time'];
$first_row_end = $first_row['es-end-time'];
echo ' - ';
if ($first_row_date) {
echo date('F j, Y',strtotime($first_row_date));
}
else {
echo 'Sale Dates TBA';
}
}
endwhile;
wp_reset_query();
?>
然而,當我嘗試,它列出每次銷售3次,根本不按日期排序,如果沒有輸入日期(只需要默認銷售日期待定),則會引發錯誤。
任何幫助非常感謝。
爲什麼你要傳遞''orderby'=>'modified',order =>'DESC''? – Kenney
只是一般格式來啓動WP_Query並拉出所有帖子。 – Xype
由於它是中繼器字段中的子字段,因此無法按WP_Query數組內的$ key和元數字順序進行排序。 – Xype