From 37bcca44926d89d7df31d530cacbd6223a66eb9e Mon Sep 17 00:00:00 2001 From: azaozz Date: Tue, 1 Dec 2009 08:14:42 +0000 Subject: [PATCH] Don't show deleted Pages in wp.getPages results, props ryan, props Denis-de-Bernardy,fixes #11243 git-svn-id: http://svn.automattic.com/wordpress/trunk@12303 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/query.php | 33 +++++++++++++++++++-------------- xmlrpc.php | 2 +- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/wp-includes/query.php b/wp-includes/query.php index 5ee5a0514..c80a17976 100644 --- a/wp-includes/query.php +++ b/wp-includes/query.php @@ -2108,20 +2108,25 @@ class WP_Query { $q_status = explode(',', $q['post_status']); $r_status = array(); $p_status = array(); - if ( in_array( 'draft' , $q_status ) ) - $r_status[] = "$wpdb->posts.post_status = 'draft'"; - if ( in_array( 'pending', $q_status ) ) - $r_status[] = "$wpdb->posts.post_status = 'pending'"; - if ( in_array( 'future' , $q_status ) ) - $r_status[] = "$wpdb->posts.post_status = 'future'"; - if ( in_array( 'inherit' , $q_status ) ) - $r_status[] = "$wpdb->posts.post_status = 'inherit'"; - if ( in_array( 'private', $q_status ) ) - $p_status[] = "$wpdb->posts.post_status = 'private'"; - if ( in_array( 'publish', $q_status ) ) - $r_status[] = "$wpdb->posts.post_status = 'publish'"; - if ( in_array( 'trash', $q_status ) ) - $r_status[] = "$wpdb->posts.post_status = 'trash'"; + if ( $q['post_status'] == 'any' ) { + // @todo Use register_post_status() data to determine which states should be excluded. + $r_status[] = "$wpdb->posts.post_status <> 'trash'"; + } else { + if ( in_array( 'draft' , $q_status ) ) + $r_status[] = "$wpdb->posts.post_status = 'draft'"; + if ( in_array( 'pending', $q_status ) ) + $r_status[] = "$wpdb->posts.post_status = 'pending'"; + if ( in_array( 'future' , $q_status ) ) + $r_status[] = "$wpdb->posts.post_status = 'future'"; + if ( in_array( 'inherit' , $q_status ) ) + $r_status[] = "$wpdb->posts.post_status = 'inherit'"; + if ( in_array( 'private', $q_status ) ) + $p_status[] = "$wpdb->posts.post_status = 'private'"; + if ( in_array( 'publish', $q_status ) ) + $r_status[] = "$wpdb->posts.post_status = 'publish'"; + if ( in_array( 'trash', $q_status ) ) + $r_status[] = "$wpdb->posts.post_status = 'trash'"; + } if ( empty($q['perm'] ) || 'readable' != $q['perm'] ) { $r_status = array_merge($r_status, $p_status); diff --git a/xmlrpc.php b/xmlrpc.php index 6a97b8308..8e683b756 100644 --- a/xmlrpc.php +++ b/xmlrpc.php @@ -612,7 +612,7 @@ class wp_xmlrpc_server extends IXR_Server { do_action('xmlrpc_call', 'wp.getPages'); - $pages = get_posts( array('post_type' => 'page', 'post_status' => 'all', 'numberposts' => $num_pages) ); + $pages = get_posts( array('post_type' => 'page', 'post_status' => 'any', 'numberposts' => $num_pages) ); $num_pages = count($pages); // If we have pages, put together their info.