どうやって髪の毛を引き離しているのか、カテゴリ別の月リストを出力する方法。私は同じ問題を探していて、解決策はこれまでのところ幸運を見つけることができません...
とにかく、私のWebサイトにはPOSTタイプのページが2つあります。 1つはNEWSページ(例:http://example.com/news/
)、もう1つはBLOGページ(例:http://example.com/blog/
)です。
私はarchive.php
を使用して私のNEWSおよびBLOGページを表示し、sidebar.php
内の投稿数と共に月リストを出力したい場所を指定します。私はwp_get_archives('cat=0')
を使ってリストを出力することができました、しかしこれはこのように出力します
2013/05(20)
2013/06(12)
2013/07(18)
2013/08(6)
HTML:
<li><a href="http://xxxxxxxx.com/wp/2013/05/"></a></li>
<li><a href="http://xxxxxxxx.com/wp/2013/06/"></a></li>
<li><a href="http://xxxxxxxx.com/wp/2013/07/"></a></li>
<li><a href="http://xxxxxxxx.com/wp/2013/08/"></a></li>
これらのいずれかをクリックすると、もちろんその特定の月にすべての投稿が行われたページに移動します。
たとえば、NEWSページにいる場合に出力したいものは、次のとおりです。
HTML:
<li><a href="http://xxxxxxxx.com/wp/news/2013/05/"></a></li>
<li><a href="http://xxxxxxxx.com/wp/news/2013/06/"></a></li>
<li><a href="http://xxxxxxxx.com/wp/news/2013/07/"></a></li>
<li><a href="http://xxxxxxxx.com/wp/news/2013/08/"></a></li>
カテゴリ固有。何か案が?
カテゴリ別にアーカイブを取得するためにgetarchives_where
フィルタを使うことができます
add_filter( 'getarchives_where', 'my_archives_filter_function', 10, 2 );
// your filter function replace YOUR CATEGORY ID with category term id e.g(3)
function my_archives_filter_function($where) {
global $wpdb;
$where ." AND $wpdb->posts.ID IN (SELECT $wpdb->posts.ID FROM $wpdb->posts 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) WHERE $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id = 'YOUR CATEGORY ID')";
return $where;
}
今wp_get_archives();
を呼び出します