公開日:2022/8/16 最終更新日:2022/08/28

【WordPress】wp_get_archives()から括弧を削除する方法

カテゴリー: WordPress

久しぶりの投稿です。お盆中にブログのWordPressテーマの変更をしようとした際、アーカイブの一覧表示辺りで躓くことがあったのでその共有です。

$args = [
  'show_post_count' => 1,
];
wp_get_archives($args);

上のコードはアーカイブ一覧を表示するためのコードです。
show_post_count=1で投稿件数も一緒に表示させます。

でもこれで投稿件数も表示させると(1)のように括弧がついてくる、鬱陶しい。

なので、

function filter_archives($link_html, $url, $text, $format, $before, $after)
{
  $temp_after = str_replace(' (', '', $after);
  $temp_after = str_replace(')', '', $temp_after);
  if ('html' === $format) {
    $link_html =
      '<li class="list-group-item d-flex justify-content-between align-items-start">
        <div class="ms-2 me-auto">
          <a href="' . $url . '" class="link-dark">' . $text . '</a>
        </div>
        <span class="badge bg-primary rounded-pill">' . $temp_after . '</span>
      </li>';
  }
  return $link_html;
}

add_filter('get_archives_link', 'filter_archives', 10, 6);
$temp_after = str_replace(' (', '', $after);
$temp_after = str_replace(')', '', $temp_after);

str_replace()で括弧を”に置換する。これでOK。
preg_match()などの正規表現を用いた方法もあるだろうけど、上手くいかなかった。

他の解決方法を見つけたらまた記事にします。

参考:Remove Post Count Parentheses From Widget
https://wordpress.org/support/topic/remove-post-count-parentheses-from-widget/

今月中にブログをテーマを変更する予定です。