【WordPress】全○件のうち○件目を表示しています

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【WordPress】全○件のうち○件目を表示しています

2021-11-15 | ,

WordPress のカテゴリやタグや日付のアーカイブに「全○件のうち○件目を表示しています」ってな感じのメッセージを表示したい!

Amazon 等の EC サイトの商品の検索結果みたいなの。

環境

  • WordPress 5.8.1-ja
  • PHP 7.4.25

解決手順

まず、テーマフォルダーの function.php に下記を追加する。

この関数でアーカイブに含まれる件数の取得、表示している記事が何番目から何番目かの計算を行ってる。
表示されている記事が 1 つの場合の処理もしてる。

function get_archive_message()
{
    global $wp_query;

    $page_start = ( get_query_var( 'posts_per_page' ) * ( get_query_var( 'paged' ) ? get_query_var( 'paged' ) - 1 : 0 ) ) + 1;
    $page_end = $page_start + $wp_query->post_count - 1;

    return '全 ' . $wp_query->found_posts . ' 件のうち ' . ( $page_start == $page_end ? $page_start : $page_start . '-' . $page_end ) . ' 件目を表示しています。';
}

メッセージを表示したい部分に下記のような感じで先程 function.php に追加した関数を呼び出す。

<?php if (is_archive()) : ?>
<?php echo get_archive_message(); ?>
<?php endif; ?>

全件数 32 件、1 ページの表示件数が 5 件、開いているページが 3 ページ目だとすると、このコードを追加した部分に「全 32 件のうち 11 - 15 件目を表示しています」と表示される。

編集後記

今回のコードも作成中のテーマで使ってるので、実際に運用して様子を見たい。
前回のもそうなんだけど、関数名やら変数名を名付けるのが苦手っす…。ブログのパーマリンクは更に3倍増しで苦手っす。(どっちもあとから気になって変えたくなっちゃう!)