Skip to content

Commit b4e58c2

Browse files
committed
HTML API: Refactor get_post_class() to split CSS class names on whitespace.
1 parent e5a3a62 commit b4e58c2

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

src/wp-includes/post-template.php

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -496,18 +496,15 @@ function get_post_class( $css_class = '', $post = null ) {
496496

497497
$classes = array();
498498

499-
if ( $css_class ) {
500-
if ( ! is_array( $css_class ) ) {
501-
$css_class = preg_split( '#\s+#', $css_class );
502-
}
503-
$classes = array_map( 'esc_attr', $css_class );
504-
} else {
499+
if ( is_string( $css_class ) ) {
500+
$classes = iterator_to_array( WP_HTML_Tag_Processor::parse_class_list( $css_class ) );
501+
} elseif ( ! is_array( $css_class ) ) {
505502
// Ensure that we always coerce class to being an array.
506-
$css_class = array();
503+
$classes = array();
507504
}
508505

509506
if ( ! $post ) {
510-
return $classes;
507+
return array_values( array_unique( array_map( 'esc_attr', $classes ) ) );
511508
}
512509

513510
$classes[] = 'post-' . $post->ID;
@@ -593,8 +590,6 @@ function get_post_class( $css_class = '', $post = null ) {
593590
}
594591
}
595592

596-
$classes = array_map( 'esc_attr', $classes );
597-
598593
/**
599594
* Filters the list of CSS class names for the current post.
600595
*
@@ -606,10 +601,9 @@ function get_post_class( $css_class = '', $post = null ) {
606601
*/
607602
$classes = apply_filters( 'post_class', $classes, $css_class, $post->ID );
608603

609-
$classes = array_unique( $classes );
610-
$classes = array_values( $classes );
604+
$classes = array_map( 'esc_attr', $classes );
611605

612-
return $classes;
606+
return array_values( array_unique( $classes ) );
613607
}
614608

615609
/**

0 commit comments

Comments
 (0)