wp_get_archives:WordPress 年別リストを出力

wp_get_archivesを使って年別リストを出力する。

テキストの最後に「年」をいれたり、セレクトボックス型のナビゲーションでも使えるようにformatも指定できるようにする。

formatは表示形式を指定できるので、「html・link・option」などを指定します。

functions.phpに追加

/**
 * 年リスト出力
 */
function theYearList($taxsonomy, $format = 'html'){
    $year_list = wp_get_archives(array(
        'type' => 'yearly',
        'format' => $format,
        'post_type' => $taxsonomy,
        'show_post_count' => false,
        'echo' => 0
    ));

    // 生成コードに対してstr_replaceで年をつける
    if($format == 'html'){
        $year_list = str_replace("</a>", "年</a>", $year_list);
    }
    else if($format == 'option'){
        $year_list = str_replace(" </option>", "年</option>", $year_list);
    }

    echo $year_list;
}

閉じタグを置換処理で「年」をつけたり、「2014(13)」みたいな括弧に件数入れたりもできます。

テンプレートでの使い方

<h1>年別アーカイブ(リスト形式)</h1>
<ul>
    <?php theYearList('news'); ?>
</ul>

<h1>年別アーカイブ(セレクトフォーム形式)</h1>
<form>
    <select>
        <option>年を選択</option>
        <?php theYearList('news', 'option'); ?>
    </select>
</form>

SNSでもご購読できます。