apply_filters( ‘post_class’, string[] $classes, string[] $css_class, int $post_id )

Filters the list of CSS class names for the current post.


An array of post class names.
An array of additional class names added to the post.
The post ID.


$classes = apply_filters( 'post_class', $classes, $css_class, $post->ID );



User Contributed Notes

  1. Skip to note 3 content

    Custom classes for post table rows.

    This filter can be used to add additional classes to the rows of post in any edit.php post page of the dashboard,

    add_filter('post_class', 'set_row_post_class', 10,3);
    function set_row_post_class($classes, $class, $post_id){
        if (!is_admin()) { //make sure we are in the dashboard 
            return $classes;
        $screen = get_current_screen(); //verify which page we're on
        if ('my-custom-type' != $screen->post_type && 'edit' != $screen->base) {
            return $classes;
        //check if some meta field is set 
        $profile_incomplete = get_post_meta($post_id, 'profile_incomplete', true);
        if ('yes' == $profile_incomplete) {
            $classes[] = 'profile_incomplete'; //add a custom class to highlight this row in the table
        // Return the array
        return $classes;
  2. Skip to note 4 content

    The filter is called when ever the function get_post_class($class, $post_id) is called. It is called at the end of the of function.
    Internally WordPress will call this function in many places, including the admin dashboard pages. The filter allows you to filter the Array $classes which will be added to the page.
    Furthermore, the classes passed to the function call by say a plugin or a template will be passed as the 2nd parameter $class, and finally the third parameter is the ID of the post object being processed by the function.

You must log in before being able to contribute a note or feedback.