From 16b48edadf83110be7a7d193142adde60dc1cedb Mon Sep 17 00:00:00 2001
From: Ryan Boren
Date: Fri, 11 Dec 2009 23:14:43 +0000
Subject: [PATCH] Don't fallback to the options database when retrieving
*_per_page user options. Props nacin. fixes #11385
git-svn-id: https://develop.svn.wordpress.org/trunk@12375 602fd350-edb4-49c9-b593-d223f7449a82
---
wp-admin/categories.php | 6 +++---
wp-admin/edit-comments.php | 6 +++---
wp-admin/edit-pages.php | 5 +++--
wp-admin/edit-tags.php | 8 ++++----
wp-admin/includes/post.php | 12 ++++++------
wp-admin/includes/template.php | 12 +++++++++---
wp-admin/plugins.php | 6 +++---
wp-admin/upload.php | 5 +++--
8 files changed, 34 insertions(+), 26 deletions(-)
diff --git a/wp-admin/categories.php b/wp-admin/categories.php
index ee0af34df5..9639281f60 100644
--- a/wp-admin/categories.php
+++ b/wp-admin/categories.php
@@ -166,10 +166,10 @@ $pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 0;
if ( empty($pagenum) )
$pagenum = 1;
-$cats_per_page = get_user_option('categories_per_page');
-if ( empty($cats_per_page) )
+$cats_per_page = (int) get_user_option( 'categories_per_page', 0, false );
+if ( empty( $cats_per_page ) || $cats_per_page < 1 )
$cats_per_page = 20;
-$cats_per_page = apply_filters('edit_categories_per_page', $cats_per_page);
+$cats_per_page = apply_filters( 'edit_categories_per_page', $cats_per_page );
if ( !empty($_GET['s']) )
$num_cats = count(get_categories(array('hide_empty' => 0, 'search' => $_GET['s'])));
diff --git a/wp-admin/edit-comments.php b/wp-admin/edit-comments.php
index ff4373759d..ee23b3e36b 100644
--- a/wp-admin/edit-comments.php
+++ b/wp-admin/edit-comments.php
@@ -236,10 +236,10 @@ unset($status_links);
post_count / $per_page);
$page_links = paginate_links( array(
diff --git a/wp-admin/edit-tags.php b/wp-admin/edit-tags.php
index c611c9f37c..3789747a8a 100644
--- a/wp-admin/edit-tags.php
+++ b/wp-admin/edit-tags.php
@@ -184,11 +184,11 @@ $pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 0;
if ( empty($pagenum) )
$pagenum = 1;
-$tags_per_page = get_user_option('edit_tags_per_page');
-if ( empty($tags_per_page) )
+$tags_per_page = (int) get_user_option( 'edit_tags_per_page', 0, false );
+if ( empty($tags_per_page) || $tags_per_page < 1 )
$tags_per_page = 20;
-$tags_per_page = apply_filters('edit_tags_per_page', $tags_per_page);
-$tags_per_page = apply_filters('tagsperpage', $tags_per_page); // Old filter
+$tags_per_page = apply_filters( 'edit_tags_per_page', $tags_per_page );
+$tags_per_page = apply_filters( 'tagsperpage', $tags_per_page ); // Old filter
$page_links = paginate_links( array(
'base' => add_query_arg( 'pagenum', '%#%' ),
diff --git a/wp-admin/includes/post.php b/wp-admin/includes/post.php
index 5e833e553c..e5924f1dd9 100644
--- a/wp-admin/includes/post.php
+++ b/wp-admin/includes/post.php
@@ -845,10 +845,10 @@ function wp_edit_posts_query( $q = false ) {
$orderby = 'date';
}
- $posts_per_page = get_user_option('edit_per_page');
- if ( empty($posts_per_page) )
+ $posts_per_page = (int) get_user_option( 'edit_per_page', 0, false );
+ if ( empty( $posts_per_page ) || $posts_per_page < 1 )
$posts_per_page = 15;
- $posts_per_page = apply_filters('edit_posts_per_page', $posts_per_page);
+ $posts_per_page = apply_filters( 'edit_posts_per_page', $posts_per_page );
wp("post_type=post&$post_status_q&posts_per_page=$posts_per_page&order=$order&orderby=$orderby");
@@ -903,10 +903,10 @@ function wp_edit_attachments_query( $q = false ) {
$q['cat'] = isset( $q['cat'] ) ? (int) $q['cat'] : 0;
$q['post_type'] = 'attachment';
$q['post_status'] = isset( $q['status'] ) && 'trash' == $q['status'] ? 'trash' : 'inherit';
- $media_per_page = get_user_option('upload_per_page');
- if ( empty($media_per_page) )
+ $media_per_page = (int) get_user_option( 'upload_per_page', 0, false );
+ if ( empty( $media_per_page ) || $media_per_page < 1 )
$media_per_page = 20;
- $q['posts_per_page'] = $media_per_page;
+ $q['posts_per_page'] = apply_filters( 'upload_per_page', $media_per_page );
$post_mime_types = get_post_mime_types();
$avail_post_mime_types = get_available_post_mime_types('attachment');
diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php
index bc7a5e5b57..79bc99008d 100644
--- a/wp-admin/includes/template.php
+++ b/wp-admin/includes/template.php
@@ -3716,14 +3716,20 @@ function screen_options($screen) {
return '';
}
- $option = str_replace('-', '_', "${screen}_per_page");
- $per_page = get_user_option($option);
- if ( empty($per_page) ) {
+ $option = str_replace( '-', '_', "${screen}_per_page" );
+ $per_page = (int) get_user_option( $option, 0, false );
+ if ( empty( $per_page ) || $per_page < 1 ) {
if ( 'plugins' == $screen )
$per_page = 999;
else
$per_page = 20;
}
+ if ( 'edit_comments_per_page' == $option )
+ $per_page = apply_filters( 'comments_per_page', $per_page, isset($_REQUEST['comment_status']) ? $_REQUEST['comment_status'] : 'all' );
+ elseif ( 'categories' == $option )
+ $per_page = apply_filters( 'edit_categories_per_page', $per_page );
+ else
+ $per_page = apply_filters( $option, $per_page );
$return = '' . __('Options') . "
\n";
$return .= "\n";
diff --git a/wp-admin/plugins.php b/wp-admin/plugins.php
index 2dbec819ef..0f163b2ef6 100644
--- a/wp-admin/plugins.php
+++ b/wp-admin/plugins.php
@@ -350,10 +350,10 @@ $plugins = &$$plugin_array_name;
//Paging.
$total_this_page = "total_{$status}_plugins";
$total_this_page = $$total_this_page;
-$plugins_per_page = get_user_option('plugins_per_page');
-if ( empty($plugins_per_page) )
+$plugins_per_page = (int) get_user_option( 'plugins_per_page', 0, false );
+if ( empty( $plugins_per_page ) || $plugins_per_page < 1 )
$plugins_per_page = 999;
-$plugins_per_page = apply_filters('plugins_per_page', $plugins_per_page);
+$plugins_per_page = apply_filters( 'plugins_per_page', $plugins_per_page );
$start = ($page - 1) * $plugins_per_page;
diff --git a/wp-admin/upload.php b/wp-admin/upload.php
index 9d684d9950..390305ded9 100644
--- a/wp-admin/upload.php
+++ b/wp-admin/upload.php
@@ -134,9 +134,10 @@ if ( ! isset( $_GET['paged'] ) || $_GET['paged'] < 1 )
if ( isset($_GET['detached']) ) {
- $media_per_page = (int) get_user_option('upload_per_page');
- if ( empty($media_per_page) )
+ $media_per_page = (int) get_user_option( 'upload_per_page', 0, false );
+ if ( empty($media_per_page) || $media_per_page < 1 )
$media_per_page = 20;
+ $media_per_page = apply_filters( 'upload_per_page', $media_per_page );
if ( !empty($lost) ) {
$start = ( (int) $_GET['paged'] - 1 ) * $media_per_page;