Skip to content

Instantly share code, notes, and snippets.

@D4R4
Created August 29, 2019 16:22
Show Gist options
  • Save D4R4/9f96b4b433631d2acd87b775dacf9e4f to your computer and use it in GitHub Desktop.
Save D4R4/9f96b4b433631d2acd87b775dacf9e4f to your computer and use it in GitHub Desktop.
CUSTOM COLUMNS FOR CUSTOM POST TYPES
add_filter( 'manage_edit-movie_columns', 'my_edit_movie_columns' ) ;
function my_edit_movie_columns( $columns ) {
$columns = array(
'cb' => '<input type="checkbox" />',
'title' => __( 'Movie' ),
'duration' => __( 'Duration' ),
'genre' => __( 'Genre' ),
'date' => __( 'Date' )
);
return $columns;
}
add_action( 'manage_movie_posts_custom_column', 'my_manage_movie_columns', 10, 2 );
function my_manage_movie_columns( $column, $post_id ) {
global $post;
switch( $column ) {
/* If displaying the 'duration' column. */
case 'duration' :
/* Get the post meta. */
$duration = get_post_meta( $post_id, 'duration', true );
/* If no duration is found, output a default message. */
if ( empty( $duration ) )
echo __( 'Unknown' );
/* If there is a duration, append 'minutes' to the text string. */
else
printf( __( '%s minutes' ), $duration );
break;
/* If displaying the 'genre' column. */
case 'genre' :
/* Get the genres for the post. */
$terms = get_the_terms( $post_id, 'genre' );
/* If terms were found. */
if ( !empty( $terms ) ) {
$out = array();
/* Loop through each term, linking to the 'edit posts' page for the specific term. */
foreach ( $terms as $term ) {
$out[] = sprintf( '<a href="%s">%s</a>',
esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'genre' => $term->slug ), 'edit.php' ) ),
esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'genre', 'display' ) )
);
}
/* Join the terms, separating them with a comma. */
echo join( ', ', $out );
}
/* If no terms were found, output a default message. */
else {
_e( 'No Genres' );
}
break;
/* Just break out of the switch statement for everything else. */
default :
break;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment