mirror of
https://github.com/WordPress/WordPress.git
synced 2024-11-16 15:46:04 +01:00
If post_status
is passed to WP_Query
as an array containing 'any'
and anything else, don't exclude the other values if they match when running any
's exclusion logic.
Adds unit tests. Fixes #28007. Built from https://develop.svn.wordpress.org/trunk@28622 git-svn-id: http://core.svn.wordpress.org/trunk@28443 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
96d788132a
commit
d0bdcc3e7a
@ -2768,8 +2768,11 @@ class WP_Query {
|
|||||||
$p_status = array();
|
$p_status = array();
|
||||||
$e_status = array();
|
$e_status = array();
|
||||||
if ( in_array( 'any', $q_status ) ) {
|
if ( in_array( 'any', $q_status ) ) {
|
||||||
foreach ( get_post_stati( array('exclude_from_search' => true) ) as $status )
|
foreach ( get_post_stati( array( 'exclude_from_search' => true ) ) as $status ) {
|
||||||
|
if ( ! in_array( $status, $q_status ) ) {
|
||||||
$e_status[] = "$wpdb->posts.post_status <> '$status'";
|
$e_status[] = "$wpdb->posts.post_status <> '$status'";
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
foreach ( get_post_stati() as $status ) {
|
foreach ( get_post_stati() as $status ) {
|
||||||
if ( in_array( $status, $q_status ) ) {
|
if ( in_array( $status, $q_status ) ) {
|
||||||
|
Loading…
Reference in New Issue
Block a user