「年」→「年度」に変更とArchives for a categoryとの連携
-
以前、「特定カテゴリの「年度別」アーカイブ」という投稿で以下の解決策を頂きました。
function query_for_fiscal_year( $where ) { global $wpdb, $wp_query, $fiscal_year; if ( is_year() && is_category()) { $fiscal_year = (int)$wp_query->query_vars['year']; $cat = $wp_query->query_vars['cat']; $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')"; $where .= " AND $wpdb->term_taxonomy.taxonomy = 'category' " . " AND $wpdb->term_taxonomy.term_id IN ($cat) "; } return $where; } function my_join( $join ) { global $wpdb; if( is_year() && is_category() ) { $join = " INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) "; } return $join; } add_action( 'posts_where', 'query_for_fiscal_year' ); add_action( 'posts_join', 'my_join' );
とfunctions.phpに記載し、「年」くくりを「年度」くくりに変更することができました。
ですが、Archives for a categoryとの連携でうまくいきません。例えば、
「カテゴリID 1」の「2010年3月1日」という記事は
「http://www.example.com/date/2009?cat=1」というアーカイブページに表示されるのですが、
「wp_get_archives」で表示される年度リストでは「2010年」の記事と判断されてしまいます。
(http://www.example.com/date/2010?cat=1ページには記事は表示されません)「function wp_get_archives」にも
上記の「function query_for_fiscal_year」内の
「年」→「年度」に変更する記述が必要なのでしょうか?お力をお借りしたく投稿させていただきました。
よろしくお願いいたします。
- トピック「「年」→「年度」に変更とArchives for a categoryとの連携」には新たに返信することはできません。