Always pass back the custom classes `get_post_class()` was called with, even if the post was not found.
props F J Kaiser, Bueltge. fixes #22271. git-svn-id: https://develop.svn.wordpress.org/trunk@31408 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
2c12dc0ce3
commit
757fd2c1e4
|
@ -404,12 +404,20 @@ function post_class( $class = '', $post_id = null ) {
|
|||
* @return array Array of classes.
|
||||
*/
|
||||
function get_post_class( $class = '', $post_id = null ) {
|
||||
$post = get_post($post_id);
|
||||
$post = get_post( $post_id );
|
||||
|
||||
$classes = array();
|
||||
|
||||
if ( empty($post) )
|
||||
if ( $class ) {
|
||||
if ( ! is_array( $class ) ) {
|
||||
$class = preg_split( '#\s+#', $class );
|
||||
}
|
||||
$classes = array_map( 'esc_attr', $class );
|
||||
}
|
||||
|
||||
if ( ! $post ) {
|
||||
return $classes;
|
||||
}
|
||||
|
||||
$classes[] = 'post-' . $post->ID;
|
||||
if ( ! is_admin() )
|
||||
|
@ -466,13 +474,7 @@ function get_post_class( $class = '', $post_id = null ) {
|
|||
}
|
||||
}
|
||||
|
||||
if ( !empty($class) ) {
|
||||
if ( !is_array( $class ) )
|
||||
$class = preg_split('#\s+#', $class);
|
||||
$classes = array_merge($classes, $class);
|
||||
}
|
||||
|
||||
$classes = array_map('esc_attr', $classes);
|
||||
$classes = array_map( 'esc_attr', $classes );
|
||||
|
||||
/**
|
||||
* Filter the list of CSS classes for the current post.
|
||||
|
|
|
@ -44,6 +44,15 @@ class Tests_Post_GetPostClass extends WP_UnitTestCase {
|
|||
$this->assertContains( 'wptests_tax-bar', $found );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 22271
|
||||
*/
|
||||
public function test_with_custom_classes_and_no_post() {
|
||||
$this->assertEquals( array(), get_post_class( '', null ) );
|
||||
$this->assertEquals( array( 'foo' ), get_post_class( 'foo', null ) );
|
||||
$this->assertEquals( array( 'foo', 'bar' ), get_post_class( array( 'foo', 'bar' ), null ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @group cache
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue