如何根据日期对wordpress中的帖子进行分组和排序?
How to group ans sort posts in wordpress according to date?
我有以下代码按标题对帖子进行排序。请参阅随附的屏幕截图。
想要的结果
这就是我现在得到的
我想要的是将帖子分组在一起,即日期为 12 月的帖子应在 12 月下,而日期为 11 月的帖子应在 11 月下,依此类推。附上两张图片。
我需要对下面的代码进行一些调整。
<div class="margin-top" style="margin-top: 20px;">
<?php if ( have_posts() ) : ?>
<div class="articles-list">
<?php do_action( 'presscore_before_loop' ); ?>
<?php update_post_thumbnail_cache(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php
$start=0;
$venue = basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
if (isset($venue) && !empty($venue)) {
global $post;
$venue_a = get_term_by('slug',$venue, 'venues');
for($i=0;$i<10;$i++){
$key = get_post_meta($post->ID,'sub_seminars_'.$i.'_venue',true);
if($venue_a->name == $key ){
$ref = get_post_meta($post->ID,'sub_seminars_'.$i.'_ref',true);
$ven_label = get_post_meta($post->ID,'sub_seminars_'.$i.'_venue',true);
$start_date = get_post_meta($post->ID,'sub_seminars_'.$i.'_start_date',true);
$end_date = get_post_meta($post->ID,'sub_seminars_'.$i.'_end_date',true);
$fees = get_post_meta($post->ID,'sub_seminars_'.$i.'_fees',true);
$start =1;
break;
}
}
}
?>
<table class="gry-bkgrnd-sec" style=" border-collapse: collapse; width: 100%;">
<tbody>
<?php if( have_rows('sub_seminars') ): ?>
<?php while ( have_rows('sub_seminars') ) : the_row();
?>
<tr style="background-color: #50619a">
<td style="width: 100px; color: #fff;">Reference</td>
<td style="width: 400px; color: #fff;">Title</td>
<td style="width: 200px; color: #fff;">Dates</td>
<td style="width: 100px; color: #fff;">Venue</td>
<td style="width: 100px; color: #fff;">Fees</td>
</tr>
<tr>
<td style="width: 200px;"><?php the_sub_field('ref'); ?></td>
<td style="width: 400px;">
<a style=" color: #044970;" href="<?php the_permalink(); ?>" title="<?php echo the_title_attribute( 'echo=0' ); ?>" rel="bookmark">
<?php the_title(); ?></a><?php if (get_field('seminar_sub_title')) : ?>
<a style=" color: #044970;" href="<?php the_permalink(); ?>" rel="bookmark">
<?php the_field('seminar_sub_title'); ?><?php endif; ?></a>
</td>
<td>
<?php
if(date("m", strtotime($start_date)) != date("m", strtotime($end_date)))
{
echo date("d M", strtotime($start_date)).' - '.date("d M", strtotime($end_date));
}
else
{
echo date("d", strtotime($start_date)).' - '.date("d M", strtotime($end_date));
}
?>
</td>
<td style="width: 45px;">
<?php echo $ven_label; ?>
</td>
<td style="width: 45px;">
<?php echo $fees; ?>
</td>
</tr>
<?php break; ?>
<?php endwhile; ?>
<?php endif; ?>
</tbody>
</table>
<?php endwhile; ?>
<?php do_action( 'presscore_after_loop' ); ?>
</div>
<?php dt_paginator(); ?>
<?php else : ?>
<?php get_template_part( 'no-results', 'blog' ); ?>
<?php endif; ?>
</div>
显示的场所是创建的自定义分类
这是我为解决上述问题而编写的代码
<?php
$archive_data = get_queried_object();
//echo '<pre>';print_r( $archive_data );
$archiveId = $archive_data->term_id;
$categroy_name = $archive_data->slug;
$seminar_venue = $archive_data->name;
$subseminars_found = euromatech_search_subseminars( '', $archive_data->slug, '');
if(!empty($subseminars_found)){
foreach($subseminars_found as $month => $day){
?>
<div class="dec-box">
<h3 class="year-title"><?php echo date('M Y', $month); ?></h3>
<div class="register-table table-sec">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="background-g">
<th class="left-td seminar-title-header">Program Title</th>
<th class="text-center"><?php echo date('Y', $month); ?> Dates</th>
<th class="text-center">Venues</th>
</tr>
<?php
foreach($day as $subseminars){
foreach($subseminars as $subseminar) {
?>
<tr>
<td class="left-td"><a href="<?php the_permalink($subseminar['seminarID']); ?>">
<?php echo get_the_title($subseminar['seminarID']); ?> <?php if (get_field('seminar_sub_title', $subseminar['seminarID'])) : ?><?php echo get_field('seminar_sub_title', $subseminar['seminarID']); ?><?php endif; ?></a></td>
<td class="date-year text-center"><?php echo date('d M', strtotime($subseminar['start_date'])) . ' - ' . date('d M', strtotime($subseminar['end_date'])); ?></td>
<td class="text-center"><?php echo esc_html($subseminar['venue_name']); ?></td>
</tr>
<?php
}
}
?>
</table>
</div>
</div>
<?php
}
}
else {
echo '<h4>No Upcoming Seminars found</h4>';
echo '<p>For further information on forthcoming events in this region, please contact <a href="mailto:',ot_get_option('email_address', ''),'">',ot_get_option('email_address', ''),'</a></p>';
}
?>
希望对其他人有所帮助。
我有以下代码按标题对帖子进行排序。请参阅随附的屏幕截图。
想要的结果
这就是我现在得到的
我想要的是将帖子分组在一起,即日期为 12 月的帖子应在 12 月下,而日期为 11 月的帖子应在 11 月下,依此类推。附上两张图片。
我需要对下面的代码进行一些调整。
<div class="margin-top" style="margin-top: 20px;">
<?php if ( have_posts() ) : ?>
<div class="articles-list">
<?php do_action( 'presscore_before_loop' ); ?>
<?php update_post_thumbnail_cache(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php
$start=0;
$venue = basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
if (isset($venue) && !empty($venue)) {
global $post;
$venue_a = get_term_by('slug',$venue, 'venues');
for($i=0;$i<10;$i++){
$key = get_post_meta($post->ID,'sub_seminars_'.$i.'_venue',true);
if($venue_a->name == $key ){
$ref = get_post_meta($post->ID,'sub_seminars_'.$i.'_ref',true);
$ven_label = get_post_meta($post->ID,'sub_seminars_'.$i.'_venue',true);
$start_date = get_post_meta($post->ID,'sub_seminars_'.$i.'_start_date',true);
$end_date = get_post_meta($post->ID,'sub_seminars_'.$i.'_end_date',true);
$fees = get_post_meta($post->ID,'sub_seminars_'.$i.'_fees',true);
$start =1;
break;
}
}
}
?>
<table class="gry-bkgrnd-sec" style=" border-collapse: collapse; width: 100%;">
<tbody>
<?php if( have_rows('sub_seminars') ): ?>
<?php while ( have_rows('sub_seminars') ) : the_row();
?>
<tr style="background-color: #50619a">
<td style="width: 100px; color: #fff;">Reference</td>
<td style="width: 400px; color: #fff;">Title</td>
<td style="width: 200px; color: #fff;">Dates</td>
<td style="width: 100px; color: #fff;">Venue</td>
<td style="width: 100px; color: #fff;">Fees</td>
</tr>
<tr>
<td style="width: 200px;"><?php the_sub_field('ref'); ?></td>
<td style="width: 400px;">
<a style=" color: #044970;" href="<?php the_permalink(); ?>" title="<?php echo the_title_attribute( 'echo=0' ); ?>" rel="bookmark">
<?php the_title(); ?></a><?php if (get_field('seminar_sub_title')) : ?>
<a style=" color: #044970;" href="<?php the_permalink(); ?>" rel="bookmark">
<?php the_field('seminar_sub_title'); ?><?php endif; ?></a>
</td>
<td>
<?php
if(date("m", strtotime($start_date)) != date("m", strtotime($end_date)))
{
echo date("d M", strtotime($start_date)).' - '.date("d M", strtotime($end_date));
}
else
{
echo date("d", strtotime($start_date)).' - '.date("d M", strtotime($end_date));
}
?>
</td>
<td style="width: 45px;">
<?php echo $ven_label; ?>
</td>
<td style="width: 45px;">
<?php echo $fees; ?>
</td>
</tr>
<?php break; ?>
<?php endwhile; ?>
<?php endif; ?>
</tbody>
</table>
<?php endwhile; ?>
<?php do_action( 'presscore_after_loop' ); ?>
</div>
<?php dt_paginator(); ?>
<?php else : ?>
<?php get_template_part( 'no-results', 'blog' ); ?>
<?php endif; ?>
</div>
显示的场所是创建的自定义分类
这是我为解决上述问题而编写的代码
<?php
$archive_data = get_queried_object();
//echo '<pre>';print_r( $archive_data );
$archiveId = $archive_data->term_id;
$categroy_name = $archive_data->slug;
$seminar_venue = $archive_data->name;
$subseminars_found = euromatech_search_subseminars( '', $archive_data->slug, '');
if(!empty($subseminars_found)){
foreach($subseminars_found as $month => $day){
?>
<div class="dec-box">
<h3 class="year-title"><?php echo date('M Y', $month); ?></h3>
<div class="register-table table-sec">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="background-g">
<th class="left-td seminar-title-header">Program Title</th>
<th class="text-center"><?php echo date('Y', $month); ?> Dates</th>
<th class="text-center">Venues</th>
</tr>
<?php
foreach($day as $subseminars){
foreach($subseminars as $subseminar) {
?>
<tr>
<td class="left-td"><a href="<?php the_permalink($subseminar['seminarID']); ?>">
<?php echo get_the_title($subseminar['seminarID']); ?> <?php if (get_field('seminar_sub_title', $subseminar['seminarID'])) : ?><?php echo get_field('seminar_sub_title', $subseminar['seminarID']); ?><?php endif; ?></a></td>
<td class="date-year text-center"><?php echo date('d M', strtotime($subseminar['start_date'])) . ' - ' . date('d M', strtotime($subseminar['end_date'])); ?></td>
<td class="text-center"><?php echo esc_html($subseminar['venue_name']); ?></td>
</tr>
<?php
}
}
?>
</table>
</div>
</div>
<?php
}
}
else {
echo '<h4>No Upcoming Seminars found</h4>';
echo '<p>For further information on forthcoming events in this region, please contact <a href="mailto:',ot_get_option('email_address', ''),'">',ot_get_option('email_address', ''),'</a></p>';
}
?>
希望对其他人有所帮助。