正在查找一些代码审阅。
我有一个问题,我必须按年份列出事件。这是按meta\\u键(“show\\u date”)排序的。
它按预期工作,尽管我很想看看是否有其他更有效的方法来实现这一点。
我已经注释了我的代码,以阐明我的思想过程。
<?php get_header(); ?>
<?php
$args = array(
\'post_type\' => \'event\',
\'category_name\' => \'past\',
\'meta_key\' => \'show_date\',
\'order_by\' => \'meta_value\'
);
$prod_history = new WP_Query( $args );
//set up the arrays to store the years so I can iterate over them easily later
$all_years = array();
if ( $prod_history->have_posts() ) :
?>
<?php while( $prod_history->have_posts() ): $prod_history->the_post(); ?>
<?php
$date_str = get_field( \'show_date\' );
//seperate the date from format \'MONTH day(int), YYYY, giving us only year
$show_year = explode(\',\', $date_str);
//reassign $show_year to an interger instead of a string
$year_num = intval( $show_year[1] );
$link = get_permalink();
$title = get_the_title();
array_push( $all_years, $year_num );
$dates[] = array(
$year_num => array (
\'title\' => $title,
\'link\' => $link
)
);
?>
<?php endwhile; endif; ?>
<?php
$start_year = min( $all_years );
$end_year = max( $all_years );
foreach( range( $end_year, $start_year ) as $year ){
echo "<h2>" . $year . "</h2>";
foreach( $dates as $date ){
foreach ( $date as $key => $value ) {
if( $key == $year ) {
echo \'<h3><a href="\' . $value["link"] . \'" class="link" >\' . $value[\'title\'] . "</a></h3>";
}
}
}
}
?>
设置多维数组“$dates”是最好的方法吗?
我的四大深度foreach声明是最有效的方式吗?
我是否忽略了一个更简单的解决方案?
只是想成为一个更好的程序员,谢谢你的帮助。