Don't allow negative values when paging. fixes #2893

git-svn-id: http://svn.automattic.com/wordpress/branches/2.0@3958 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2006-07-04 20:01:31 +00:00
parent b3b39cc608
commit 590a1a168f

View File

@ -305,6 +305,7 @@ class WP_Query {
if (isset($q['page'])) { if (isset($q['page'])) {
$q['page'] = trim($q['page'], '/'); $q['page'] = trim($q['page'], '/');
$q['page'] = (int) $q['page']; $q['page'] = (int) $q['page'];
$q['page'] = abs($q['page']);
} }
$add_hours = intval(get_settings('gmt_offset')); $add_hours = intval(get_settings('gmt_offset'));
@ -617,15 +618,21 @@ class WP_Query {
// Paging // Paging
if (empty($q['nopaging']) && ! $this->is_single && ! $this->is_page) { if (empty($q['nopaging']) && ! $this->is_single && ! $this->is_page) {
$page = $q['paged']; $page = abs(intval($q['paged']));
if (empty($page)) { if (empty($page)) {
$page = 1; $page = 1;
} }
if (($q['what_to_show'] == 'posts')) { if (($q['what_to_show'] == 'posts')) {
$pgstrt = ''; $q['offset'] = abs(intval($q['offset']));
$pgstrt = (intval($page) -1) * $q['posts_per_page'] . ', '; if ( empty($q['offset']) ) {
$limits = 'LIMIT '.$pgstrt.$q['posts_per_page']; $pgstrt = '';
$pgstrt = (intval($page) -1) * $q['posts_per_page'] . ', ';
$limits = 'LIMIT '.$pgstrt.$q['posts_per_page'];
} else { // we're ignoring $page and using 'offset'
$pgstrt = $q['offset'] . ', ';
$limits = 'LIMIT ' . $pgstrt . $q['posts_per_page'];
}
} elseif ($q['what_to_show'] == 'days') { } elseif ($q['what_to_show'] == 'days') {
$startrow = $q['posts_per_page'] * (intval($page)-1); $startrow = $q['posts_per_page'] * (intval($page)-1);
$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"); $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");