统计搜索结果,并显示每页的偏移量

时间:2019-06-28 作者:Beaniie

我试图在使用分页时实现以下搜索结果计数;

Showing 1-9 of 368 Items - (第一页)

Showing 9-18 of 368 Items - (第二页)

但我正在让自己$count_posts; 我不确定我是否完全掌握了它/

<小时/>

PHP (Search.php)

<?php $post_count = $wp_query->post_count; ?>
<?php $count_products = wp_count_posts( \'products\' )->publish; ?>
<?php $count_posts = wp_count_posts()->publish; ?>

HTML/PHP (Search.php)

<p class="small text-uppercase">Showing <?php echo $post_count; . \'-\' . $post_count; ?> of <strong><?php echo $count_products ?> items</strong></p>
我的问题是:我怎样才能达到我所追求的结果?

EDIT: 7月4日14:56

经过一段时间的测试,我在@KrzysiekDródż的帮助下找到了答案。

if ( !is_paged() ) {
    // first page of pagination
    $first_post = absint( $wp_query->get(\'paged\') - 1 );
    $last_post = $first_post + $wp_query->post_count - 1;
    $all_posts = $wp_query->found_posts;
} else {
    $first_post = absint( $wp_query->get(\'paged\') - 1 ) * $wp_query->get(\'posts_per_page\') + 1;
    $last_post = $first_post + $wp_query->post_count - 1;
    $all_posts = $wp_query->found_posts;
} 

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

恐怕你做错了一点。。。

以下是问题:

  1. post_count 字段包含显示的帖子数量,而不是偏移量
  2. wp_count_posts 返回全局发布的数量,而不是当前查询中的发布数量(因此,对于具有某些筛选器的查询,它将不为真)
  3. echo $post_count; . \'-\' . $post_count; 不是正确的PHP代码您只需要WP\\U查询中的信息:

    <?php
        $first_post = absint( $wp_query->get(\'paged\') - 1 ) * $wp_query->get(\'posts_per_page\') + 1;
        $last_post = $first_post + $wp_query->post_count;
        $all_posts = $wp_query->found_posts;
    ?>
    <p class="small text-uppercase">Showing <?php echo $first_post . \'-\' . $last_post; ?> of <strong><?php echo $all_posts; ?> items</strong></p>
    

相关推荐

将所有“非PHP”文件放在不同的服务器上

我想分开我的。wordpress使用的所有其他文件(图像、脚本等)中的php文件。所以我把它们放在不同的服务器上。我可以通过简单地将“siteurl”和“home”设置为文件服务器的url,使我的wordpress站点知道这些文件。这对图像来说很好,但破坏了其他一切(就像每个人都期望的那样)有人知道有更可行的方法吗?