Make WordPress Core

Changeset 1614


Ignore:
Timestamp:
09/06/2004 08:03:16 PM (22 years ago)
Author:
rboren
Message:

New page by day code from Sebastian Herp.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/classes.php

    r1613 r1614  
    491491                                $limits = 'LIMIT '.$pgstrt.$q['posts_per_page'];
    492492                        } elseif ($q['what_to_show'] == 'days') {
    493                                 $post_dates = $wpdb->get_col('SELECT post_date FROM ' . $wpdb->posts . "$join WHERE (1=1) " . $where . ' ORDER BY post_date DESC');
    494                                 $number_of_days = $q['posts_per_page'];
    495                                 $page_number = -1;
    496                                 $day_number = $number_of_days;
    497                                 foreach ($post_dates as $post_date) {
    498                                         if (($day_number % $number_of_days) == 0) {
    499                                                 $previousDay = (int)mysql2date('d', $post_date);
    500                                                 $previousMonth = (int)mysql2date('m', $post_date);
    501                                                 $previousYear = (int)mysql2date('Y', $post_date);
    502                                                 $page_number++;
    503                                                 $day_number = 1;
    504                                                 if ($page_number == $page) {
    505                                                         $end_date = $post_date;
    506                                                         break;
    507                                                 } else {
    508                                                         $start_date = $post_date;
    509                                                         continue;
    510                                                 }
    511                                         }
    512 
    513                                         $thisDay = (int)mysql2date('d', $post_date);
    514                                         $thisMonth = (int)mysql2date('m', $post_date);
    515                                         $thisYear = (int)mysql2date('Y', $post_date);
    516 
    517                                         if (($thisDay != $previousDay) || ($thisMonth != $previousMonth) ||
    518                                                         ($thisYear != $previousYear)) {
    519                                                 $previousDay = (int)mysql2date('d', $post_date);
    520                                                 $previousMonth = (int)mysql2date('m', $post_date);
    521                                                 $previousYear = (int)mysql2date('Y', $post_date);
    522                                                 $previous_date = $post_date;
    523                                                 $day_number++;
    524                                         }
    525                                 }
     493                                $startrow = $q['posts_per_page'] * (intval($page)-1);
     494                                $start_date = $wpdb->get_var("SELECT max(post_date) FROM $wpdb->posts $join WHERE (1=1) $where GROUP BY year(post_date), month(post_date), dayofmonth(post_date) ORDER BY post_date DESC LIMIT $startrow,1");
     495                                $endrow = $startrow + $q['posts_per_page'];
     496                                $end_date = $wpdb->get_var("SELECT min(post_date) FROM $wpdb->posts GROUP BY year(post_date), month(post_date), dayofmonth(post_date) ORDER BY post_date DESC LIMIT $endrow,1");
    526497
    527498                                if ($page > 1) {
    528                                         $where .= " AND post_date > '$end_date' AND post_date <= '$start_date'";
     499                                        $where .= " AND post_date >= '$end_date' AND post_date <= '$start_date'";
    529500                                } else {
    530                                         $where .= " AND post_date > '$end_date'";
     501                                        $where .= " AND post_date >= '$end_date'";
    531502                                }
    532503                        }
Note: See TracChangeset for help on using the changeset viewer.