「イベント」のカスタム投稿タイプがあり、イベントの日付のカスタムメタボックスがあります。srtotime()UNIX形式でデータベースに記録されたすべての日付で追加されたすべてのイベント。
イベントのリストが照会されるとき、私はそれらを週ごとに分ける必要があります。つまり、「4/23の週」にその週のイベントのみをリストし、その後に「4/30の週」にその週のイベントをリストします。
これらはすべて動的であり、各週がいつ始まるかを論理的に検出し、返されたイベントのためにデータベースに保存されている日付と比較して、それらを「週」にグループ化する必要があります。
すべてが理にかなっていることを願っています。このタイプの機能のリソースを見つけるのに苦労しているだけで、必要なロジックと、すでに使用できるWPが何であるかがわかりません。現在のところ、結果はカスタムWordpressループを使用して取得されていますが、必要に応じてSQLを使用できます。
あなたができるあらゆる方法を助けてくれてありがとう!
*更新されたコード
<?php
$loop = new WP_Query(array(
'post_type' => 'tf_events',
'posts_per_page' => -1,
'orderby' => 'meta_value',
'meta_key' => 'tf_events_startdate',
'order' => 'ASC'
));
echo '<pre>';
print_r($loop);
echo '</pre>';
$groups = array();
if ($loop->have_posts()) {
while ($loop->have_posts()) {
$loop->the_post();
$groups['Week of ' . $post->post_date][] = $post;
// Get event dates from WP metabox data (returns as string)
$longstartdate = get_post_meta($post->ID, 'tf_events_startdate', true); //get start date meta data
$longenddate = get_post_meta($post->ID, 'tf_events_enddate', true); //get start date meta data
$longweekof = get_post_meta($post->ID, 'tf_events_weekof', true); //get Week Of date meta data
// Reformat dates
$prettystartdate = date("D. M. j, Y", $longstartdate);
$prettyenddate = date("l, F j, Y", $longenddate);
$prettyweekof = date("m/d", $longweekof);
// Get Custom Meta Terms/Catagories/taxonomies
$the_venue = get_the_term_list( $post->ID, 'venue' );
$event_age = get_the_term_list( $post->ID, 'event_age' );
// Get Custom Metabox Data - URL for Buy Tickets
$buytix = get_post_meta( $post->ID, 'buytix', true );
}
}
?>
<h1>Groups of posts</h1>
<?php echo '<pre>'; print_r($groups); echo '</pre>';?>
<?php foreach ($groups as $week => $rows) : ?>
<h2><?php echo $week ?></h2>
<ul>
<?php foreach ($rows as $post) : setup_postdata($post) ?>
<?php echo ' <h1>POST START</h1> <pre>';
print_r($post);
echo '</pre> <h1>POST END</h1>'; ?>
<li><a href="<?php the_permalink() ?>"><?php the_title() ?></a> <?php echo $prettystartdate; ?></li>
<?php endforeach ?>
</ul>
<?php endforeach ?>