公開日: 2022年08月16日

wp_get_archives()から括弧を削除する

WordPressテーマのリニューアル中につまずいたので備忘録として残します。

目次

デフォルト

sidebar.php
wp_get_archives([
'show_post_count' => 1,
]);

wp_get_archives() – Function | Developer.WordPress.org

Displays archive links based on type and format.
https://developer.wordpress.org/reference/functions/wp_get_archives/

アーカイブ一覧をそのアーカイブに含まれる投稿の数と一緒に取得します。
上記コードだと以下のように出力されます。

HTML
<ul>
<li><a href="https://sample.jp/2022/01/">2022年1月</a>&nbsp;(2)</li>
<li><a href="https://sample.jp/2022/12/">2021年12月</a>&nbsp;(2)</li>
</ul>

私は(件数)の表示はあまり好きではないので括弧を削除します。

解決方法

functions.php
function format_wp_get_archives($link_html, $url, $text, $format, $before, $after)
{
$after = str_replace(' (', '', $after); // 括弧開きを削除
$after = str_replace(')', '', $after); // 括弧閉じを削除
if ($format === 'html') {
$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">' . $after . '</span>
</li>
';
}
return $link_html;
}
add_filter('get_archives_link', 'format_wp_get_archives', 10, 6);

str_replaceで括弧をから文字に置換するだけで完了です。

PHP: str_replace - Manual

PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
https://www.php.net/manual/ja/function.str-replace.php

参考記事

Remove Post Count Parentheses From Widget | WordPress.org

[This thread is closed.] When I insert the Archives widget and check the “Show Post Counts”, it wraps the number in parentheses. Is there…
https://wordpress.org/support/topic/remove-post-count-parentheses-from-widget/
© 2024 blog.tksn.jp. All Rights Reserved.