Skip to content

Commit 2ad0fc6

Browse files
committed
Revert "Simplified post class filter"
This reverts commit f5f7fed.
1 parent 5346041 commit 2ad0fc6

2 files changed

Lines changed: 28 additions & 4 deletions

File tree

includes/context.php

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,35 @@ function carelib_body_class_filter( $classes ) {
4444
*
4545
* @since 1.0.0
4646
* @access public
47-
* @param array $classes
47+
* @param array $classes
48+
* @param string|array $class
49+
* @param int $post_id
4850
* @return array
4951
*/
50-
function carelib_post_class_filter( $classes ) {
51-
return array_diff( $classes, array( 'hentry' ) );
52+
function carelib_post_class_filter( $classes, $class, $post_id ) {
53+
$_classes = array();
54+
$post = get_post( $post_id );
55+
$post_type = get_post_type();
56+
$post_status = get_post_status();
57+
58+
$remove = array( 'hentry', "type-{$post_type}", "status-{$post_status}" );
59+
60+
foreach ( $classes as $key => $class ) {
61+
62+
if ( in_array( $class, $remove, true ) ) {
63+
unset( $classes[ $key ] );
64+
} else {
65+
$classes[ $key ] = str_replace( 'tag-', 'post_tag-', $class );
66+
}
67+
}
68+
69+
$_classes[] = 'entry';
70+
$_classes[] = $post_type;
71+
$_classes[] = $post_status;
72+
73+
$_classes = array_map( 'esc_attr', $_classes );
74+
75+
return array_unique( array_merge( $_classes, $classes ) );
5276
}
5377

5478
/**

includes/filters.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@
280280
*
281281
* @see carelib_post_class_filter
282282
*/
283-
add_filter( 'post_class', 'carelib_post_class_filter', 0 );
283+
add_filter( 'post_class', 'carelib_post_class_filter', 0, 3 );
284284

285285
/**
286286
* Callback defined in includes/context.php

0 commit comments

Comments
 (0)