実現させたいことは、カスタム投稿の月別と年別アーカイブ表示をさせてたいのですが、
月のみ(件数)がaタグの内側に入れたいです。
ご教授よろしくお願いします。
archive.php
<?php $archives_y = wp_get_archives('post_type=news&type=yearly&format=custom&before=&after=,&echo=0&limit=12&show_post_count=ture'); $archive_y_arr = explode(',', $archives_y); array_pop($archive_y_arr); $archives_m = wp_get_archives('post_type=news&type=monthly&format=custom&before=&after=,&echo=0&limit=12&show_post_count=ture'); $archive_m_arr = explode(',', $archives_m); array_pop($archive_m_arr); echo '<ul class="news-archive-wrap">'; foreach( $archive_y_arr as $archive_year => $val ) { $count = $archive_year+1; if ($count == 1) { foreach( $archive_m_arr as $archive_month ) { if ( intval(strip_tags($archive_month)) == intval(strip_tags($val)) ) { echo '<li>'.$archive_month.'</li>'; }; }; } else { echo '<li>'.ltrim($val).'</li>'; }; }; echo '</ul>'; ?>
function.php
function my_archives_link($html){ if(preg_match('/[0-9]+?<\/a>/', $html)) $html = preg_replace('/<\/a>\s*( )\((\d+)\)/','年($2)</a>', $html); if(preg_match('/title=[\'\"][0-9]+?[\'\"]/', $html)) $html = preg_replace('/(title=[\'\"][0-9]+?)([\'\"])/', '$1年$2</a>', $html); return $html; } add_filter('get_archives_link', 'my_archives_link', 10);
出力されたhtmlになります。
<ul class="news-archive-wrap"> <li><a href="post_type=news">2016年7月</a> (6)</li> </ul>
回答1件
あなたの回答
tips
プレビュー