/ Published in: PHP
This adds custom columns to a custom post type
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
add_filter( 'manage_edit-events_columns', 'my_edit_events_columns' ) ; function my_edit_events_columns( $columns ) { 'cb' => '<input type="checkbox" />', 'title' => __( 'Event' ), 'event-date' => __( 'Event Date' ), 'category' => __( 'Category' ), 'date' => __( 'Date' ) ); return $columns; } add_action( 'manage_events_posts_custom_column', 'my_manage_events_columns', 10, 2 ); function my_manage_events_columns( $column, $post_id ) { global $post; switch( $column ) { /* If displaying the 'duration' column. */ case 'event-date' : /* Get the post meta. */ $event_date = get_post_meta( $post_id, '_event_date', true ); /* If no duration is found, output a default message. */ echo __( 'Unknown' ); /* If there is a duration, append 'minutes' to the text string. */ else echo( $event_date ); break; /* If displaying the 'genre' column. */ case 'category' : /* Get the genres for the post. */ $terms = get_the_terms( $post_id, 'event-category' ); /* If terms were found. */ /* Loop through each term, linking to the 'edit posts' page for the specific term. */ foreach ( $terms as $term ) { esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'event-category' => $term->slug ), 'edit.php' ) ), esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'event-category', 'display' ) ) ); } /* Join the terms, separating them with a comma. */ } /* If no terms were found, output a default message. */ else { _e( 'No Categories' ); } break; /* Just break out of the switch statement for everything else. */ default : break; } }