著者アーカイブページのサイドバーなどで、年月別に区切りをつけた、投稿リンク一覧を表示します
functions.php
function get_author_posts_group_month() {
global $authordata, $post;
$authors_posts= get_posts( array( 'author'=> $authordata->ID, 'post__not_in'=> array( $post->ID ), 'posts_per_page'=> -1, 'post_status' => 'publish' ) );
$output = '<ul style="list-style:none;">';
$y= '';
$m= '';
$html= '<li style="padding-left:30px"><a href="%1$s">%2$s</a></li>';
foreach ( $authors_posts as $key=> $authors_post ) {
preg_match( '!([0-9]+)-([0-9]+)-.*!', $authors_post->post_date, $args );
if ( $y !== $args[1] ) {
$output .= '<li>' . absint( $args[1] ) . '</li>';
}
if ( $m !== $args[2] ) {
$output .= '<li>' . absint( $args[2] ) . '</li>';
}
$output .= sprintf( $html,
get_permalink( $authors_post->ID ),
apply_filters( 'the_title', $authors_post->post_title, $authors_post->ID )
);
$y= $args[1];
$m= $args[2];
}
$output .= '</ul>';
return $output;
}
テンプレートの必要な部分で、関数を呼び出します。
<?php echo get_author_posts_group_month(); ?>