記事IDを使ったアーカイブマッピングを設定する際、桁数を揃えようと思うと標準で用意されている項目だと6桁(pad=1)のみになります。
この桁数を4桁でページ生成を行いたいということがあったので、対応方法をメモしておきます。
サンプルコード
まず桁数の制御ですが、6桁の記事IDを取得した上で、正規表現で前の2桁を除去する形で対応します。
その際、桁数が5桁以上になると値が重複してしまうため、値が6桁(100000以上)の場合はそのまま使用、5桁(10000以上)の場合は前の1桁のみ除去、4桁以下の場合は前の2桁を除去する形で対応します。
<mt:If tag="ContentID" ge="100000"> <mt:ContentID pad="1"> <mt:ElseIf ge="10000"> <mt:ContentID pad="1" regex_replace="/^0/",""> <mt:Else> <mt:ContentID pad="1" regex_replace="/^0{2}/",""> </mt:If>
上記コードを1行にした上で、アーカイブマッピングの設定を行います。
post-<mt:If tag="ContentID" ge="100000"><mt:ContentID pad="1"><mt:ElseIf ge="10000"><mt:ContentID pad="1" regex_replace="/^0/",""><mt:Else><mt:ContentID pad="1" regex_replace="/^0{2}/",""></mt:If>.html
これで試してみると、4桁の記事IDでページの生成ができました。
コメントが承認されるまで時間がかかります。