カスタム投稿のアーカイブを年度別に表示したい
-
現在通常の投稿(post)及びカスタム投稿でアーカイブページを作成しています。
アーカイブページは、プルダウンで年度を選択し、選択された年度の記事一覧がページ内に表示される仕組みです。
以下のコードでpostの年度表示は出来ました。
function.php
function query_for_fiscal_year( $where ) { global $wpdb, $wp_query, $fiscal_year; if ( is_year() ) { $fiscal_year = (int)$wp_query->query_vars['year']; $next_year = $fiscal_year + 1; $where = " AND ( ( YEAR($wpdb->posts.post_date) = '$fiscal_year' AND MONTH($wpdb->posts.post_date) BETWEEN '4' AND '12' ) OR ( YEAR($wpdb->posts.post_date) = '$next_year' AND MONTH($wpdb->posts.post_date) BETWEEN '1' AND '3') ) AND $wpdb->posts.post_type = 'post' AND ($wpdb->posts.post_status = 'publish' OR $wpdb->posts.post_status = 'private')"; } return $where; } add_action( 'posts_where', 'query_for_fiscal_year' ); function my_get_archives_by_fiscal_year ( $args = '' ) { global $wpdb, $wp_locale; $defaults = array ( 'post_type' => 'post', 'limit' => '', 'format' => 'html', 'before' => '', 'after' => '', 'show_post_count' => false, 'echo' => 1 ); $r = wp_parse_args( $args, $defaults ); extract ( $r, EXTR_SKIP ); if ( '' != $limit ) { $limit = absint( $limit ); $limit = ' LIMIT ' . $limit; } $output = ''; $arcresults = (array) $wpdb->get_results( "SELECT YEAR(ADDDATE(post_date, INTERVAL -3 MONTH)) AS <code>year</code>, COUNT(ID) AS <code>posts</code> FROM $wpdb->posts WHERE post_type = '$post_type' AND post_status = 'publish' GROUP BY YEAR(ADDDATE(post_date, INTERVAL -3 MONTH)) ORDER BY post_date DESC $limit" ); if ( $arcresults ) { $afterafter = $after; foreach ( $arcresults as $arcresult ) { $url = get_year_link( $arcresult->year ); $text = $arcresult->year . '年度'; if ( $show_post_count ) $after = ' (' . $arcresult->posts . ')' . $afterafter; $output .= get_archives_link( $url, $text, $format, $before, $after ); } } if ( $echo ) echo $output; else return $output; }
archive.php
<select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'> <?php my_get_archives_by_fiscal_year('post_type=post&type=yearly&format=option'); ?> </select>年度のトピックス一覧
ここからカスタム投稿へ流用するにはどのようにカスタマイズすればよろしいでしょうか?
純粋に変数名を変えてpost_typeをカスタム投稿に合わせただけでは表示しませんでした。また、このソースコードのままだとカスタム投稿側の一覧表示もすべての記事が出てくるバグが発生しています。(現在、カスタム投稿アーカイブは「wp_get_archives」を使用)
ご教示のほどよろしくお願いします。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「カスタム投稿のアーカイブを年度別に表示したい」には新たに返信することはできません。