このエントリーをはてなブックマークに追加

年月アーカイブのリストを、今年度は月別で昨年以前は年別と言う仕様にするために

function takien_archive_where($where,$args){
$year = isset($args['year']) ? $args['year'] : '';
$month = isset($args['month']) ? $args['month'] : '';
$monthname = isset($args['monthname']) ? $args['monthname']: '';
$day = isset($args['day']) ? $args['day'] : '';
$dayname = isset($args['dayname']) ? $args['dayname'] : '';
 
if($year){
$where .= " AND YEAR(post_date) = '$year' ";
$where .= $month ? " AND MONTH(post_date) = '$month' " : '';
$where .= $day ? " AND DAY(post_date) = '$day' " : '';
}
if($month){
$where .= " AND MONTH(post_date) = '$month' ";
$where .= $day ? " AND DAY(post_date) = '$day' " : '';
}
if($monthname){
$where .= " AND MONTHNAME(post_date) = '$monthname' ";
$where .= $day ? " AND DAY(post_date) = '$day' " : '';
}
if($day){
$where .= " AND DAY(post_date) = '$day' ";
}
if($dayname){
$where .= " AND DAYNAME(post_date) = '$dayname' ";
}
return $where;
}
add_filter( 'getarchives_where','takien_archive_where',10,2);

をfunctions に記入し、*http://takien.com/blog/2012/02/05/display-wordpress-archive-lists-by-specific-year-or-month/ 参照

<?php $y = date('Y'); wp_get_archives('type=monthly&limit=12&year=' .$y); ?>
<?php wp_get_archives('type=yearly&limit=12); ?>

年アーカイブの部分は今年度にカレントクラスを付けてcssで非表示に。

function wpse_62509_current_month_selector( $link_html ) {
    $current_year = date('Y');
    if ( preg_match('/'.$current_year.'/i', $link_html ) )
        $link_html = preg_replace('/<li>/i', '<li class="current">', $link_html );
    return $link_html;
}
add_filter( 'get_archives_link', 'wpse_62509_current_month_selector' );

2014.09.16 投稿 2015.04.05 更新

新しい情報を追記している場合はありますが、古い情報の修正はしていません。投稿日・文中の日付を参照してください。

Recent Articles