【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倍増しで苦手っす。(どっちもあとから気になって変えたくなっちゃう!)

カテゴリー「プログラミング覚書」の最近の記事
タグ「PHP, WordPress」を含む最近の記事