WordPress

【WordPress】カスタム投稿でタクソノミーのタームごとに月別アーカイブをなんとか表示させる方法。

投稿日:2014年6月11日 更新日:

WordPressでWEB制作時にカスタム投稿を用いている場合、
タクソノミーのタームごとに月別アーカイブを表示させたい場合がございます。
本日はその方法のご紹介です。

以下のような形式で月別アーカイブを表示させるには
wp_get_archives関数を使用されるかと思いますが、さらにfunctions.php 内でfilterを利用します。

例)

・2014年
6月
5月
・2013年
12月
11月

1)functions.php ファイルに下記のフィルターを追記します。
========================================
add_filter( ‘getarchives_join’, ‘my_getarchives_join’, 10, 2 );
function my_getarchives_join( $join, $r ) {
global $wpdb;
if ( isset( $r[‘taxonomy’] ) ) {
$join .= ” LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) “;
$join .= ” LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) “;
$join .= ” LEFT JOIN $wpdb->terms ON ($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id) “;
}
return $join;
}

add_filter( ‘getarchives_where’, ‘my_getarchives_where’, 10, 2 );
function my_getarchives_where( $where, $r ) {
global $wpdb;
if ( isset( $r[‘taxonomy’] ) ) {
$where .= $wpdb->prepare( ” AND $wpdb->term_taxonomy.taxonomy = %s “, $r[‘taxonomy’] );
}
if ( isset( $r[‘slug’] ) ) {
$where .= $wpdb->prepare( ” AND $wpdb->terms.slug = %s “, $r[‘slug’] );
}
return $where;
}
========================================

2)表示させたいテンプレートにて下記のように’slug’に特定したいタームのスラッグを
条件に入れwp_get_archives 関数追記します。

$args = array(
’post_type’ => ‘カスタム投稿’,
’taxonomy’ => ‘タクソノミー’,
’slug’ => ’タクソノミーのターム’,// slug はfunctions.phpのfilter
’type’ => ‘monthly’,
’show_post_count’ => false,
’echo’ => 0 //
);
$archives_month = strip_tags(wp_get_archives($args));

URLのパーマリンクでは、月別ページのページ遷移後に、
タームの値を引き継ぐよう工夫が必要となりますが、
これでfilterはうまくできるかと思います。

-WordPress

関連記事

【WordPress】WPtouchプラグインを利用した場合、特定のURLのみPCサイトを表示させる方法。

【WordPress】WPtouchプラグインを利用した場合、特定のURLのみPCサイトを表示させる方法。

WordPressのプラグイン「WPtouch」をインストールし スマホサイトを制作する際、特定のURLのときはPC用のテンプレートを 表示させたい場合がございます。その方法をご紹介します。 wpto …

wordpressの忘れがちな関数 アイキャッチ編

wordpressの忘れがちな関数 アイキャッチ編

こんにちはコーダーのKです。wpでテーマを自作しているとき、よく使うけど忘れがちな関数を紹介したいと思います。今回はアイキャッチ編です。 目次1 wordpressの忘れがちな関数 アイキャッチ編1. …

ワードプレスでどのテンプレートを使っているか見えるプラグイン

ワードプレスでどのテンプレートを使っているか見えるプラグイン

page.php や single.php は区別がついても archive.php や author.php になると どのテンプレートを利用しているか追跡するのに苦役を強いられるWordPress …

リンク切れを自動的にチェックしてくれるワードプレスのプラグイン

リンク切れを自動的にチェックしてくれるワードプレスのプラグイン

リンクチェックしていますか? マニュアルでチェックするとたいへんですよね。 WordPressには自動で定期的にリンク切れをチェックしてくれる 便利なプラグインがございます。 その名もズバリ、「Bro …

WordPressのテーマカスタマイズ時に私が必ず入れるプラグイン【Show Current Template】

WordPressのテーマカスタマイズ時に私が必ず入れるプラグイン【Show Current Template】

WordPressのテーマをカスタマイズする際に とても便利なプラグイン、Show Current Templateのご紹介。 「わーどぷれすっ!から引用」 Show Current Template …