CATEGORIES:PHP WORDPRESS
カテゴリとアーカイブ表示件数のカッコを非表示にする
アーカイブ表示件数のカッコを非表示に

カテゴリ名称の見出しはデフォルトだと、「カテゴリー」とかカタカナで表示され各カテゴリ名に<li>タグがついてしまう。デフォルト以外の表示にしたい。見出しを非表示にし各カテゴリ名と件数を表示させるPHP。

<?php
    $args = array(
        'title_li' => '', //見出しを非表示にする
        'show_count' => true, //投稿数を表示
    );
    wp_list_categories( $args );
?>

アーカイブは何別で表示するかを指定して、カテゴリ年月と件数を表示させる。以下は月別で表示。

<?php 
    $args = array(
        'type' => 'monthly', //月別を指定
        'show_post_count' => true, //投稿数を表示
    );
    wp_get_archives( $args );
?>

月別にしているといつかは大変な件数となるので。年が明けたら年別に変えたほうが良い。たぶん月日で記事を探すようなことはないと思うんだが。

<?php 
    $args = array(
        'type' => 'yearly', //年別を指定
        'show_post_count' => true, //投稿数を表示
    );
    wp_get_archives( $args );
?>

このままだと件数がカッコに挟まれた形で表示される。これをカスタマイズしたい。自分的には数字だけにしたい。

まずは年月が漢字で表示されてしまうのでwp_get_archivesの年表記を置き換える。漢字の代わりに「.」で区切るようfunction.phpに追記。

function my_archives_link($html){
$html = str_replace('年','.',$html);//年を点に置き換える
$html = str_replace('月','',$html);//月を非表示にする
return $html;
}
add_filter('get_archives_link', 'my_archives_link');

function.phpに以下を追記してカッコを非表示にする。「/<\/a>.*((\d+))/」は、</a>の手前までのカッコ数字という意味かと。「$output = preg_replace(‘/<\/a>.*((\d+))/’,’$1′,$output);」だけで非表示になるが件数を装飾したりできるようclass名を追加。デザイン上、数字だけはリンクをかけたくないので</a>を件数前に設定。

function remove_post_count_parentheses( $output ) {
  $output = preg_replace('/<\/a>.*\((\d+)\)/','</a><span class="post-count">$1</span>',$output);
  return $output;
}
add_filter( 'wp_list_categories', 'remove_post_count_parentheses' );//入力されたらremove_post_count_parenthesesを返す

add_filter( 'get_archives_link',  'remove_post_count_parentheses' );//入力されたらremove_post_count_parenthesesを返す
アーカイブ表示件数のカッコを非表示に

あとはスタイルシートで好きなように設定する。

NOTICES

  • 記事内容は実装させたものがほとんどですが自己責任で参考にしてください。

TO HEADER