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
This commit is contained in:
azaozz 2009-12-01 08:14:42 +00:00
parent 31bc813a6d
commit 37bcca4492
2 changed files with 20 additions and 15 deletions

View File

@ -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);

View File

@ -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.